如何用Java处理法文字符”ç””ô”等

lazinet 2008-02-17 09:28:09
我在用Java做一个有关法语支持的程序,但是里面的”ç”(00E7)”ô”(00F4)等字符始终无法正常显示,均被Java处理成”?”(003F)。然而,例如”é”,”á”之类的字符却可以正常显示。我把文件编码修改成了utf-8尝试了字符转换的方法(utf-8, ISO-8859-1),发现如\u00E7这种字符都无法打印或处理,直接被认为是不可认的字符集。但是Java不是号称使用unicode编码处理内部字符吗?本人菜鸟,请各位达人帮忙解惑。

Platform: J2se 6.0, eclipse 3.22, win XP
Please try:
System.out.println("ç");
System.out.println("ç".getBytes());
System.out.println(new String("ç".getBytes()));
System.out.println(new String("ç".getBytes(),"utf-8"));
System.out.println(new String("ç".getBytes(),"ISO8859_1"));
System.out.println(new String("ç".getBytes("utf-8")));
System.out.println(new String("ç".getBytes("ISO8859_1")));
System.out.println(new String("ç".getBytes("ISO8859_1"),"utf-8"));
System.out.println(new String("ç".getBytes("ISO8859_1"),"ISO8859_1"));
System.out.println(new String("ç".getBytes("utf-8"),"utf-8"));
...全文
688 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
lazinet 2008-02-18
  • 打赏
  • 举报
回复
o~~~~ 多谢 我试试看
Gump09 2008-02-18
  • 打赏
  • 举报
回复
给老紫竹大哥注解以下

老紫竹大哥的方法是没问题的
编译执行时要指定参数
javac -encoding utf-8 aaa.java
java -Dfile.encoding=utf-8 aaa

这样就可以看见文件里的文字了
老紫竹 2008-02-18
  • 打赏
  • 举报
回复
我说明几点
1 在java的String里面,字符都是unicode的,所以你想转码再打印在屏幕上,是不行的。
2 国际化处理,首推UTF-8。你可以转到UTF-8的字节码,然后输出到文件

请参考这段代码
  public static void main(String[] args) throws IOException { 
String str = "ç";
File f = new File("test.txt");
FileOutputStream fos = new FileOutputStream(f);
Writer out = new OutputStreamWriter(fos, "utf-8");
out.write(str);
out.flush();
out.close();
fos.close();
}


原文地址:http://www.java2000.net/viewthread.jsp?tid=945
老紫竹 2008-02-18
  • 打赏
  • 举报
回复
数据库在创建的时候需要指定编码类型。估计你的数据库不是UTF-8,那就没办法了,重新建一个吧!
lazinet 2008-02-18
  • 打赏
  • 举报
回复
PS: 我用的是ODBC 里面 microsft access(*mdb)和microsoft excel(*xls)的两种驱动 都不可以
lazinet 2008-02-18
  • 打赏
  • 举报
回复
感谢各位大哥帮忙 但是现在问题又来了 我发现从数据库中取出的字符就有问题(在这个时候就被处理成?了),如何让sql语句查找到ResultSet为unicode或者utf-8的编码?
老紫竹 2008-02-17
  • 打赏
  • 举报
回复
谁说cmd是16位的?
dracularking 2008-02-17
  • 打赏
  • 举报
回复
ç 这个字符貌似不是在普通的16位编码系统内的
老紫竹 2008-02-17
  • 打赏
  • 举报
回复
我提醒一下楼主,这种测试最好在cmd里面进行
因为 eclipse 的控制台也是有编码的哦!

你在运行的 dialog 里面能够看到!
lazinet 2008-02-17
  • 打赏
  • 举报
回复
.... 大哥请继续指导啊
老紫竹 2008-02-17
  • 打赏
  • 举报
回复
你这么含蓄啊!那我也含蓄一点吧!
lazinet 2008-02-17
  • 打赏
  • 举报
回复
好吧 可以不管控制台 但是我本意是写入文件 全部变?(3f) 应该不是控制台的原因。

utf-8中有ç字符的吧。。

我在想 这两个方面是不是要考虑
1。是不是和OS的JNI有关,在于window如何处理这个字符
2。是不是西欧字符有其它的Charset,就像是中文的GBK一样。

继续顶 请各位帮忙~~~

62,623

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧