utf 8在Java中将UTF8转换为ISO88591如何将其保持为单字节
我正在尝试将UTF-8中java编码的字符串转换为ISO-8859-1。例如,在字符串“–abcd”中,ISO-8859-1将–表示为E2。在UTF-8中,它表示为两个字节。我相信。当我执行getbytes(编码)并使用ISO-8859-1编码中的字节创建一个新字符串时,我会得到两个不同的字符。â. 是否有其他方法来保持角色不变,即–abcd
你可以在下面搜索框中键入要查询的问题!
我正在尝试将UTF-8中java编码的字符串转换为ISO-8859-1。例如,在字符串“–abcd”中,ISO-8859-1将–表示为E2。在UTF-8中,它表示为两个字节。我相信。当我执行getbytes(编码)并使用ISO-8859-1编码中的字节创建一个新字符串时,我会得到两个不同的字符。â. 是否有其他方法来保持角色不变,即–abcd
# 1 楼答案
如果您处理的是UTF-16以外的字符编码,那么不应该使用} 在编码之间进行转换:
java.lang.String
或char
原语——您应该只使用byte[]
数组或ByteBuffer
对象。然后,可以使用^{# 2 楼答案
对于文件编码
# 3 楼答案
这就是我需要的:
# 4 楼答案
从使用UTF-8对字符串进行编码的一组字节开始,从该数据创建一个字符串,然后获取一些以不同编码对字符串进行编码的字节:
这将正确输出字符串和iso88591字节:
因此,您的字节数组没有与正确的编码配对:
输出
(或者,您只是将utf8字节写入一个文件,并将它们作为iso88591读取到其他位置)
# 5 楼答案
如果字符串中有正确的编码,则无需执行更多操作来获取另一种编码的字节
输出:
# 6 楼答案
我会成功的。从您的描述来看,似乎您正在尝试“存储ISO-8859-1字符串”。Java中的字符串对象总是以UTF-16隐式编码。没有办法改变这种编码
不过,您可以做的是获取构成它的其他编码的字节(使用
.getBytes()
方法,如上所示)