JAVA编码,用EUC-CN读取UTF-8后,再用UTF-8写回覆盖原文文件,是否该文件就损坏了?

时间:2022-03-01 10:37:51
基本情况:
MAC平台 : 默认的字符集是UTF-8
JAVA平台:使用UFT-8

操作(纯属失误。。):
将UTF-8编写(可以在JAVA和文本显示)的文件用EUC-CN读入内存,然后用默认的UTF-8写回去,覆盖了原文件。

这种情况,用EUC-CN读UTF-8会不会造成byte损失啊,还能恢复么?
现在只能在内存中的到用EUC-CN读取的UTF-8文字,都是乱码。想不出有什么好的方式能转换回去,主要是覆盖了原始文件,文字数据全部丢失了。。

6 个解决方案

#1


肯定是不一致了

#2


引用 1 楼 huxiweng 的回复:
肯定是不一致了


嗯,就是说现在有什么办法补救没有?

#3


你解码的时候用的EUC-CN,那时候就乱码了,得用EUC-CN编码,然后用UTF-8解码,当然还有其他问题,我不了解EUC-CN,UTF-8和GBK之间的编码解码会乱码,楼主试下先用UTF-8解码,然后用EUC-CN编码,然后再用UTF-8解码,不知道行不行,1楼版主是大神的

#4


引用 3 楼 wuer0520 的回复:
你解码的时候用的EUC-CN,那时候就乱码了,得用EUC-CN编码,然后用UTF-8解码,当然还有其他问题,我不了解EUC-CN,UTF-8和GBK之间的编码解码会乱码,楼主试下先用UTF-8解码,然后用EUC-CN编码,然后再用UTF-8解码,不知道行不行,1楼版主是大神的

刚查了下EUC-CN,估计是不行了

#5


引用 3 楼 wuer0520 的回复:
你解码的时候用的EUC-CN,那时候就乱码了,得用EUC-CN编码,然后用UTF-8解码,当然还有其他问题,我不了解EUC-CN,UTF-8和GBK之间的编码解码会乱码,楼主试下先用UTF-8解码,然后用EUC-CN编码,然后再用UTF-8解码,不知道行不行,1楼版主是大神的


我试了一下,看来是不行了。
6个汉字用UTF-8编码之后得到18个byte,再用EUC-CN解码后得到9个字符。到这里是正好的。
但是用EUC-CN解码后的乱码,我再用EUC-CN编码,得到的却不是原来的18个字符,变成了11个。估计数据已经丢失在这里了。。

#6


引用 5 楼 melburg 的回复:
Quote: 引用 3 楼 wuer0520 的回复:

你解码的时候用的EUC-CN,那时候就乱码了,得用EUC-CN编码,然后用UTF-8解码,当然还有其他问题,我不了解EUC-CN,UTF-8和GBK之间的编码解码会乱码,楼主试下先用UTF-8解码,然后用EUC-CN编码,然后再用UTF-8解码,不知道行不行,1楼版主是大神的


我试了一下,看来是不行了。
6个汉字用UTF-8编码之后得到18个byte,再用EUC-CN解码后得到9个字符。到这里是正好的。
但是用EUC-CN解码后的乱码,我再用EUC-CN编码,得到的却不是原来的18个字符,变成了11个。估计数据已经丢失在这里了。。


我的意思就是这样

#1


肯定是不一致了

#2


引用 1 楼 huxiweng 的回复:
肯定是不一致了


嗯,就是说现在有什么办法补救没有?

#3


你解码的时候用的EUC-CN,那时候就乱码了,得用EUC-CN编码,然后用UTF-8解码,当然还有其他问题,我不了解EUC-CN,UTF-8和GBK之间的编码解码会乱码,楼主试下先用UTF-8解码,然后用EUC-CN编码,然后再用UTF-8解码,不知道行不行,1楼版主是大神的

#4


引用 3 楼 wuer0520 的回复:
你解码的时候用的EUC-CN,那时候就乱码了,得用EUC-CN编码,然后用UTF-8解码,当然还有其他问题,我不了解EUC-CN,UTF-8和GBK之间的编码解码会乱码,楼主试下先用UTF-8解码,然后用EUC-CN编码,然后再用UTF-8解码,不知道行不行,1楼版主是大神的

刚查了下EUC-CN,估计是不行了

#5


引用 3 楼 wuer0520 的回复:
你解码的时候用的EUC-CN,那时候就乱码了,得用EUC-CN编码,然后用UTF-8解码,当然还有其他问题,我不了解EUC-CN,UTF-8和GBK之间的编码解码会乱码,楼主试下先用UTF-8解码,然后用EUC-CN编码,然后再用UTF-8解码,不知道行不行,1楼版主是大神的


我试了一下,看来是不行了。
6个汉字用UTF-8编码之后得到18个byte,再用EUC-CN解码后得到9个字符。到这里是正好的。
但是用EUC-CN解码后的乱码,我再用EUC-CN编码,得到的却不是原来的18个字符,变成了11个。估计数据已经丢失在这里了。。

#6


引用 5 楼 melburg 的回复:
Quote: 引用 3 楼 wuer0520 的回复:

你解码的时候用的EUC-CN,那时候就乱码了,得用EUC-CN编码,然后用UTF-8解码,当然还有其他问题,我不了解EUC-CN,UTF-8和GBK之间的编码解码会乱码,楼主试下先用UTF-8解码,然后用EUC-CN编码,然后再用UTF-8解码,不知道行不行,1楼版主是大神的


我试了一下,看来是不行了。
6个汉字用UTF-8编码之后得到18个byte,再用EUC-CN解码后得到9个字符。到这里是正好的。
但是用EUC-CN解码后的乱码,我再用EUC-CN编码,得到的却不是原来的18个字符,变成了11个。估计数据已经丢失在这里了。。


我的意思就是这样