Rob*_*ent 9 java android utf-8 character-encoding
我无法使用Android API示例中显示的标准InputStreamReader方法将扩展字符(例如法语重音字符)读写到文本文件中.当我使用以下方式回读文件时:
InputStreamReader tmp = new InputStreamReader(in);
BufferedReader reader = new BufferedReader(tmp);
String str;
while ((str = reader.readLine()) != null) {
...
Run Code Online (Sandbox Code Playgroud)
字符串读取在扩展字符处被截断,而不是在行尾.然后字符串的后半部分出现在下一行.我假设我需要将我的数据保存为UTF-8,但我找不到任何这样的例子,而且我是Java的新手.
任何人都可以向我提供相关文档的示例或链接吗?
yan*_*nko 26
非常简单明了.:)
String filePath = "/sdcard/utf8_file.txt";
String UTF8 = "utf8";
int BUFFER_SIZE = 8192;
BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(filePath), UTF8),BUFFER_SIZE);
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(filePath), UTF8),BUFFER_SIZE);
Run Code Online (Sandbox Code Playgroud)
实例化时InputStreamReader
,使用带有字符集的构造函数.
InputStreamReader tmp = new InputStreamReader(in, "UTF-8");
Run Code Online (Sandbox Code Playgroud)
和做类似的事情 OutputStreamWriter
我喜欢有一个
public static final Charset UTF8 = Charset.forName("UTF-8");
Run Code Online (Sandbox Code Playgroud)
在我的代码中的某个实用程序类中,以便我可以调用(请参阅Doc中的更多内容)
InputStreamReader tmp = new InputStreamReader(in, MyUtils.UTF8);
Run Code Online (Sandbox Code Playgroud)
而不必UnsupportedEncodingException
每次都处理.
归档时间: |
|
查看次数: |
24846 次 |
最近记录: |