public class ChFileTest extends Activity {
private static final String TAG = "ChFileTest";
    private ImageView imgView;
    private String strPeifang=""; /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        imgView = (ImageView) this.findViewById(R.id.imageView);
        
        //strPeifang = "/sdcard/test.jpg";
        strPeifang = "/sdcard/a气球.jpg";
        File f=new File(strPeifang);  
        if(f.exists()){   
         Log.d("TAG", "11111111111111111111111111");  
}
        else{
         Log.d("TAG", "22222222222222222222222222");
        }        
        Bitmap bm = BitmapFactory.decodeFile(strPeifang);
        imgView.setImageBitmap(bm);
    }
}
同样的代码,在我电脑上用eclipse编译运行,将apk拷贝到 板子上,安装运行 ,Log 打印“111111111111111111”,能找到图片并显示。
而将整个工程拷到服务器上,放到 packages/apps/ 下面,然后 mm 编译后,将apk拷贝到 板子上,安装运行 ,Log 打印“2222222222222222222”,找不到该中文图片文件。如果换成 英文的 strPeifang = "/sdcard/test.jpg"; 则 都可以找到并显示。求高手帮我分析一下,问题最有可能出现在哪儿?难道是服务器的语言环境不对?还是板子的环境不对?
如果考虑编码问题,该如何考虑?
比较急,求高手指点

解决方案 »

  1.   

    试试更改源文件编码Windows->Preferences->General->Content Types->Text->Java Source File更改成UTF-8
      

  2.   

    问题已解决,楼上的方法也是对的,但是eclipse默认的本来就是UTF-8,所以不需要这么设置。谢谢楼上。
    是android 源码包里 \build\core\java.mk 里面配置有问题,因为android源码包里面默认ascii 编码方式。
    将这句改成 UTF-8 就可以了。
    $(full_classes_compiled_jar): PRIVATE_JAVAC_DEBUG_FLAGS := -g -encoding UTF-8