汉字字符串变乱码,如何处理?

maosenmin 2010-07-24 04:30:39
如题:public static void main(String args[]){
String str0="白政峯";
//System.out.print(str0=str0.replace("?", "%"));
System.out.print(str0);
}
为什么控制台打印出来的变成了“白政?”,然后用"%"来替换“?"也不起作用。项目的语言用utf-8,GBK,big5都不行。要如何处理。我本来是在做web项目,界面输入参数查询。jsp页面都可以正常,但到Action后就变成“?”了。很是郁闷。
...全文
1346 75 打赏 收藏 转发到动态 举报
写回复
用AI写文章
75 条回复
切换为时间正序
请发表友善的回复…
发表回复
wcwtitxu 2010-08-05
  • 打赏
  • 举报
回复
不用理会.

console 无法显示而已, 程序没有问题.
cw_tkong 2010-07-29
  • 打赏
  • 举报
回复
把字换成编码试试
峯:\u5CEF
温:\u6E29
yfxucn 2010-07-28
  • 打赏
  • 举报
回复
正在学web ... 顶了.......
falconkabu 2010-07-28
  • 打赏
  • 举报
回复
也可以试一下GB18030
falconkabu 2010-07-28
  • 打赏
  • 举报
回复
打错了
试一下 8859_1 转 gb2312
falconkabu 2010-07-28
  • 打赏
  • 举报
回复
看你打出的字都是繁体字 你操作系统是繁体编码 上述的都是简体字的方法 建议用简体字 操作程序
你是一下 8859_1 编码
xiao_nie 2010-07-28
  • 打赏
  • 举报
回复
关注一下繁体乱码
aoli444 2010-07-28
  • 打赏
  • 举报
回复
最好配过滤器,后台转码会掉字节的,转过来可能还是不正确。
wy9851 2010-07-28
  • 打赏
  • 举报
回复
[Quote=引用 51 楼 maosenmin 的回复:]
引用 50 楼 ol_beta 的回复:

控制台的编码也是可以设置的,可以设置一下控制台的编码。

控制台編碼如何設置?如果控制台編碼可以設置的話,那要是在WEB項目中又要如何處理?
[/Quote]

至于WEB,只要是支持GBK的浏览器都可以显示。

这个字在你的系统不能显示,不代表不能在浏览器中显示。
wy9851 2010-07-28
  • 打赏
  • 举报
回复
[Quote=引用 27 楼 maosenmin 的回复:]
操作系统是繁体系统。
[/Quote]

哇。这个问题还没有解决啊。

这是你操作系统的原因。

进入控制面板=》区域和语言选项=》区域选项选择:中文(中国)=》在“高级”里“代码转换表”里勾选“54936(GB18030 简体中文)”

如果没有这个选项,可能要家装windows的语言包。

不能保证你的繁体系统和我们简体的一样。你可以按照上面的试一试。
maosenmin 2010-07-28
  • 打赏
  • 举报
回复
[Quote=引用 70 楼 jumpheightway 的回复:]

String str = new String(param.getBytes("iso-8859-1"), "utf-8");
这个方法最有效
[/Quote]
這個方法是好,但我試了,不行,都變成"?"了。
Java_0909 2010-07-28
  • 打赏
  • 举报
回复
牛人,出牛错误
jumpheightway 2010-07-28
  • 打赏
  • 举报
回复
String str = new String(param.getBytes("iso-8859-1"), "utf-8");
这个方法最有效
maosenmin 2010-07-28
  • 打赏
  • 举报
回复
[Quote=引用 50 楼 ol_beta 的回复:]

控制台的编码也是可以设置的,可以设置一下控制台的编码。
[/Quote]
控制台編碼如何設置?如果控制台編碼可以設置的話,那要是在WEB項目中又要如何處理?
maosenmin 2010-07-28
  • 打赏
  • 举报
回复
嗯。我發現是這樣的。在控制面板的區域和語言選項里,地區選項選擇為中國台灣,屬性選項也選擇中國台灣後,MyEclipse的默認編碼變成MS950,這樣我把項目的encoding設置為GBK仍然是亂碼"?",而如果在控制面板里都選擇中國(PRC)大陸的話,則MyEclipse的默認編碼為GBK,這樣就可以是正常的。但我項目就必須得在繁體系統下的。
cg_047 2010-07-28
  • 打赏
  • 举报
回复
把项目里面的编码统一,不过为了保险,强烈的支持使用过滤器,可以把官方的改改很多不需要的东西可以丢掉的,主要是为了方便容易看!

[Quote=引用 16 楼 closewbq 的回复:]

1.首先把自己的工程编码格式统一成UTF-8。
2.在MyEclipse中files and editors的jsp也默认创建行为为UTF-8。
3.数据库安装创建的时候选择编码格式为UTF-8。
最后加个过滤器将编码过滤成UTF-8
一个官方的过滤器,自己项目也常用:
Java code

import java.io.IOException;
import javax.servl……
[/Quote]
maosenmin 2010-07-28
  • 打赏
  • 举报
回复
各位好心的朋友的積極的回復我都有認真閱讀並思考.
maosenmin 2010-07-28
  • 打赏
  • 举报
回复
關鍵是MyEclipse那里沒有GB18030,我知道GB18030是亞洲最大的一個語言集,但GBK字庫也包含了簡繁體的.
falconkabu 2010-07-28
  • 打赏
  • 举报
回复
试一下 这位朋友的操作 吧 GB18030 繁体和简体 都支持
你试用了 8859_1 编码获取 汉字源码 转换了没?
wy9851 2010-07-28
  • 打赏
  • 举报
回复
[Quote=引用 59 楼 maosenmin 的回复:]
GB18030不行,變亂碼.我是繁體XP系統.繁體SQL SERVER 2008,MyEclipse 5.5 GA平台.不可使用簡體系統.我是因為在WEB中發現了問題以為是轉碼的問題,但各種轉碼都試了還不行,就單獨新建一個類直接在控制台打印出來.結果發現是簡體字變"?".
[/Quote]

感觉你没看我前面的回复啊。。

按我说的试试,回复你也希望能有好的反馈啊。。否则我打了那么多字感觉都白费了。
加载更多回复(55)

81,092

社区成员

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

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