如何将 cp1251 字节数组转换为 utf8 字符串?
我们的手机上没有可用的 cp1251 代码页,因此 new String( data, "cp1251" ) 不起作用。
我们需要一个具有类似签名的函数
String ArrayCp1251toUTF8String(byte data[]);
We don't have the cp1251 code page available on a phone, so new String( data, "cp1251" ) doesn't work.
We need a function with signature something like
String ArrayCp1251toUTF8String(byte data[]);
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
首先,Java 中不存在“UTF-8 字符串”这样的东西,它们只是字符串。但您无需担心字符串的编码,只需担心要转换的字节的编码。由于
cp1251
(或windows-1251
)是单字节编码,因此解码很简单,只需使用字节值作为相应数组的索引即可char
值。这是一个例子:First, there's no such thing as a "UTF-8 string" in Java, they're just strings. But you don't need to worry about the string's encoding, just the encoding of the bytes you're converting. Since
cp1251
(orwindows-1251
) is a single-byte encoding, decoding is a simple matter of using the byte value as an index into an appropriate array ofchar
values. Here's an example: