开发者社区 问答 正文

关于java编码问题:报错

一段字节流,转换成字符流的时候忘了编码,然后直接读取出来,该字符串有乱码,发现该字符串里面的中文字符乱码,尝试着编码成utf8,gbk,gb2312等各种不信,又将字符串打回成流,再重新编码还是不行。(字符串里含中文繁体)。

这段乱码的字符串还有的救么?

展开
收起
kun坤 2020-06-07 00:03:23 499 分享 版权
1 条回答
写回答
取消 提交回答
  • 得从源头上解决问题。一点一点来搞吧。玩技术就需要有耐心,经得起挫折的考验。######

    应该可以通过字符串识别来断定文本是何种编码、比如文本编辑器那种,打开的时候都是先识别编码格式、

    方法给你具体如何做google吧、

    ######这种办法不可行,最好的情况下,是五个字中只有一个乱码。######转化不可能完全的,只能从源头搞起######别无选择了么?我也试过好多方法,最多只能转化80%。特别是中英文边界处,老是乱码、、、######那段字节流如果是经过定长编码的,但转换成字符流的时候如果忘了编码,它默认是采用系统的编码的,如果你的系统是定长的编码,那再逆转回来是可以的,但如果系统的默认编码是不定长的,或者那段字节流是经过不定长编码的,那逆转不了了######程序是Myeclipse上编写的,默认是GBK编码,打成jar包,运行是在linux上运行的,环境是en-utf-8什么的。有的救么?编码真心不懂!######gbk是定长字符编码,可以逆推得到原始字节流,所以在linux系统上要指明字符编码格式为gbk就可以了
    ######回复 @傻不拉唧debug : 你是说已经部署了是么?如果是这样的话那你把jvm的默认编码改下吧,######关键是我现在在liunx上已经得到字符串了,而且linux是utf-8编码。
    2020-06-07 00:03:27
    赞同 展开评论