我用的系统不是中文的,而且可能要遇到多种语言。
Java应该是支持UniCode的吧,可是,我用Java读取一个文件中的内容,只有英文可以正常显示。我用命令行试过,用Eclipse也试过,都不行。对于Eclipse支持中文的问题,我在网上找了下,改Edit->SetCoding或者Window->Preferences->General->Content Types下的text树形结构中的一些编码都不行。就是直接用System.out.println();打印不是英文的字符都可能出现“?”。请大家帮帮忙,谢谢。
Java应该是支持UniCode的吧,可是,我用Java读取一个文件中的内容,只有英文可以正常显示。我用命令行试过,用Eclipse也试过,都不行。对于Eclipse支持中文的问题,我在网上找了下,改Edit->SetCoding或者Window->Preferences->General->Content Types下的text树形结构中的一些编码都不行。就是直接用System.out.println();打印不是英文的字符都可能出现“?”。请大家帮帮忙,谢谢。
楼主【lvzhu18】截止到2008-07-11 11:24:53的历史汇总数据(不包括此帖):
发帖的总数量:19 发帖的总分数:1040 每贴平均分数:54
回帖的总数量:157 得分贴总数量:51 回帖的得分率:32%
结贴的总数量:18 结贴的总分数:940
无满意结贴数:0 无满意结贴分:0
未结的帖子数:1 未结的总分数:100
结贴的百分比:94.74 % 结分的百分比:90.38 %
无满意结贴率:0.00 % 无满意结分率:0.00 %
值得尊敬
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStreamReader;public class Test { public static void main(String[] args) {
BufferedReader in = null;
try {
in = new BufferedReader(new InputStreamReader(new FileInputStream("E:\\b.txt"), "UTF-8"));
System.out.println(in.readLine().getBytes("UTF-8"));
in.close();
}
catch (FileNotFoundException fnfe) {
fnfe.printStackTrace();
}
catch (IOException ioe) {
ioe.printStackTrace();
}
}
}
注:b.txt文件中有中文也有英文等等,不加“.getBytes("UTF-8"));”用命令行能显示英文,用Eclipse全是乱码;加上就全是乱码。
这是我的测试程序,我主要是要用在Servlet中。
而且我在Servlet中已经加上了response.setCharacterEncoding("UTF-8");
response.setContentType("text/html; charset=UTF-8");
response.setLocale(new java.util.Locale("zh", "CN"));还是不行。
请帮帮忙,谢谢!
请问应该在哪里改?是程序,还是IDE的设置?谢谢!
2 eclipse的控制台有编码设置的。
请问应该在哪里改?是程序,还是IDE的设置?谢谢!
请问应该在哪里改?是程序,还是IDE的设置?谢谢!
txt文件本身是GBK编码的中文,你用UTF-8的编码方式去读,读出的肯定是:中文是乱码,英文能显示.因为UTF-8和GBK,在英文字符的处理上都使用的是ASCII编码.
我想,楼主把5楼的关键代码这样写,应该可以显示汉字的.
in = new BufferedReader(new InputStreamReader(new FileInputStream("E:\\b.txt"), "GBK"));
System.out.println(in.readLine());Servlet的编码问题,那就比较复杂了.
window->preferences->general->Appearance->color and fonts
主要设置:Basic和含有“console”的内容的文字字体另外中文编码常见的除了utf-8,还有GB18030,可以试一下。还有一个验证是不是正确读出来的办法是:读出文本文件字体,再给写回文件里去。但不要用PrintWriter。
我把文件改成了UTF-8的也不行,以前是UniCode的。to:preferme
我试了下,改成“GBK”也不行,但改成“UniCode”,并且读“UniCode”的文件,能显示日文和大部分中文,但还有一部分显示不了。
但这只是读文件,在Servlet中还是一点效果都没有。
我想再问下,就是Servlet用“request.getParameter("str");"得到的数据的编码是由什么决定的,还是就固定是某种编码?
谢谢!
我是用:String str = new String(str.getBytes("ISO-8859-1"), "UTF-8");
来进行转换的,不知道是否正确。谢谢!
谢谢!请问,那为什么在Excel没有中文字体就能够显示完整的字符串呢?
微软 Office 中很多字体 Java 用不了。
public static ByteToCharConverter getDefault();
public static ByteToCharConverter getConverter(String encoding); 如果你不指定converter,则系统会自动使用当前的encoding,gb平台上用gbk,en平台上用8859_1。
byte ——〉char:
"你"的gb码是:0xc4e3 ,unicode是0x4f60