java编码转换问题

signboy 2006-01-11 05:53:37
如果
String testStr=URLDecoder.decode("%E6%B5%8B%E8%AF%95%E6%8E%A5%E5%8F%A3","utf-8");
则testStr="测试接口"
否则如果
String testStr=URLDecoder.decode("%E6%B5%8B%E8%AF%95%E6%8E%A5%E5%8F%A3","gb2312");
则testStr=“娴?璇???ュ?? ”

问:
采用第二种方式之后,如何把testStr中的乱码还原,即="测试接口"
...全文
234 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
「已注销」 2006-01-24
  • 打赏
  • 举报
回复
已经丢失了 ?是不可能还原成汉字了
挑大梁 2006-01-24
  • 打赏
  • 举报
回复
我想答案已经有了
低调的小青蛙 2006-01-24
  • 打赏
  • 举报
回复
无法还原,部分信息已经丢失了。最多只能还原成类似“测?接?”这样部分还原的效果。

如果你们总监坚持要你这么做,推荐你和你的总监参考一篇文章:
http://www.regexlab.com/zh/encoding.htm
xujianfu 2006-01-12
  • 打赏
  • 举报
回复
上面两位仁兄说的对,就象我以前碰到的问题一样,俺们的技术总监叫我把数据库里面的乱码想个办法转换成正确的,我找了N中方法,找了m个地方都没有找到能解决的办法,最后得到:无法还原,utf-8码到gb字节会丢失啊.
wangx1949 2006-01-12
  • 打赏
  • 举报
回复
无法还原,utf-8码到gb字节会丢失啊.
superslash 2006-01-11
  • 打赏
  • 举报
回复
无法还原,你原来的字符串本身就是以"utf-8"编码而得到得类似这样
"%E6%B5%8B%E8%AF%95%E6%8E%A5%E5%8F%A3",如果以"gb2312"来解码肯定结果不同(解码后的?说明了有些字符在gb2312编码下是无法显示的),如果原来是这样的字符串:"测试接口",那经过两次转变之后还是有可能还原的

62,634

社区成员

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

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