关于字符串编码的问题 java程序从外部的一个文本文件中读入一个中文字符串。结果显示乱码?请教各位转码的方法?谢谢 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 看看这个 应该能对你有点帮助http://zjnubridge.blogdriver.com/zjnubridge/664574.html 可以看看这个函数:public String getChinese(String str){ try { String str1=str;// byte[] str2=str1.getBytes("ISO-8859-1"); byte[] str2=str1.getBytes("ISO8859-1"); String temp=new String(str2);; return temp; } catch(Exception e) { return null; }} http://www.regexlab.com/zh/encoding.htm String string;string = new String( string.getBytes("iso-8859-1"), "GB2312") 问题的关键不是在 "如何转码",而是在于 "从文本文件中读入":如果文件是 GB 编码,则应该:Reader in = new InputStreamReader(new FileInputStream("d:\\a.txt"), "GBK");而不要直接使用 FileReader。正如 kingofworl(良辰美景虚度) 所说,请参阅:http://www.regexlab.com/zh/encoding.htm 通过阅读http://www.regexlab.com/zh/encoding.htm的内容。现在还针对我的问题请教大家。我是在一个prop.properties文件中指定了一个键值对比如:keyword=贷款,金融风险,测试test,硬盘,搜索将来在java应用程序中,读入以后直接打出这个键值如下:′???,?eèú·???,2aê?test,ó2?ì,???÷,′???,?eèú·???,ó2?ì,???÷我使用string = new String( string.getBytes("iso-8859-1"), "GB2312")转码后发现是正确的内容。我的问题是这样,JVM在读入的时候,肯定要经过一个字节组-->字符流的转换,在办出的时候也肯定会有个字符流-->字节流的转换。哪位给我讲讲“贷款,金融风险,测试test,硬盘,搜索”怎么变成上面的乱码的?谢谢大家! properties 文件的 getProperty() 方法,都是按照 iso8859-1 来阅读的(也就是说:按 1字节 => 1字符 来读的)。Properties 文件的正规使用方法,是把中文使用 "\uXXXX" 的格式放入,而不是直接写中文的 GBK 字节。比如:featureName=Eclipse PDE \u63d2\u4ef6\u5f00\u53d1\u8005\u8d44\u6e90请搂主查阅一下 Properties 的资料。或者搂主可以使用 java.util.Properties 的 save 方法看看效果。 java程序报错问题 java海量处理图片 请教各位一个UDP通信的问题? httpClient? 用java发送邮件 怎样实现显示发送进度 发送邮件问题 请教两个问题 swing中,打开窗体时,如何将焦点默认到某个控件上?(高分相送) 这个例子如何达到同步??! 一个关于判断字符串的问题,解决就给分~! N个不同整数相加之和为10000的组合个数。 使用POI导出到EXCEL时,导出的数据量大时,EXCEL文件出错
public String getChinese(String str)
{
try
{
String str1=str;
// byte[] str2=str1.getBytes("ISO-8859-1");
byte[] str2=str1.getBytes("ISO8859-1");
String temp=new String(str2);;
return temp;
}
catch(Exception e)
{
return null;
}
}
string = new String( string.getBytes("iso-8859-1"), "GB2312")
Reader in = new InputStreamReader(new FileInputStream("d:\\a.txt"), "GBK");而不要直接使用 FileReader。正如 kingofworl(良辰美景虚度) 所说,请参阅:
http://www.regexlab.com/zh/encoding.htm
我是在一个prop.properties文件中指定了一个键值对比如:
keyword=贷款,金融风险,测试test,硬盘,搜索
将来在java应用程序中,读入以后直接打出这个键值如下:
′???,?eèú·???,2aê?test,ó2?ì,???÷,′???,?eèú·???,ó2?ì,???÷
我使用string = new String( string.getBytes("iso-8859-1"), "GB2312")转码后发现是正确的内容。
我的问题是这样,JVM在读入的时候,肯定要经过一个字节组-->字符流的转换,在办出的时候也肯定会有个字符流-->字节流的转换。哪位给我讲讲“贷款,金融风险,测试test,硬盘,搜索”怎么变成上面的乱码的?谢谢大家!
featureName=Eclipse PDE \u63d2\u4ef6\u5f00\u53d1\u8005\u8d44\u6e90请搂主查阅一下 Properties 的资料。或者搂主可以使用 java.util.Properties 的 save 方法看看效果。