【急】关于android 打开 File 中文文件名 问题
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"; 则 都可以找到并显示。
求高手帮我分析一下,问题最有可能出现在哪儿?难道是服务器的语言环境不对?还是板子的环境不对?
如果考虑编码问题,该如何考虑?
比较急,求高手指点。。。 --------------------编程问答-------------------- 试试更改源文件编码Windows->Preferences->General->Content Types->Text->Java Source File更改成UTF-8 --------------------编程问答-------------------- 问题已解决,楼上的方法也是对的,但是eclipse默认的本来就是UTF-8,所以不需要这么设置。谢谢楼上。
是android 源码包里 \build\core\java.mk 里面配置有问题,因为android源码包里面默认ascii 编码方式。
将这句改成 UTF-8 就可以了。
$(full_classes_compiled_jar): PRIVATE_JAVAC_DEBUG_FLAGS := -g -encoding UTF-8
补充:移动开发 , Android