【发布时间】:2011-08-09 10:40:18
【问题描述】:
我有一个带有“ñ”字符的字符串,但我遇到了一些问题。我需要将此字符串编码为 UTF-8 编码。这个方法我试过了,还是不行:
byte ptext[] = myString.getBytes();
String value = new String(ptext, "UTF-8");
如何将该字符串编码为 utf-8?
【问题讨论】:
-
目前还不清楚您到底想做什么。 myString 是否正确包含 ñ 字符并且您在将其转换为字节数组时遇到问题(在这种情况下,请参阅 Peter 和 Amir 的答案),或者 myString 是否已损坏并且您正在尝试修复它(在这种情况下,请参阅 Joachim 的答案还有我)?
-
我需要将 myString 发送到 utf-8 编码的服务器,我需要将“ñ”字符转换为 utf-8 编码。
-
好吧,如果该服务器需要 UTF-8,那么您需要发送它的是字节,而不是字符串。因此,根据彼得的回答,在第一行中指定编码并删除第二行。
-
@Michael:我同意目前尚不清楚这里的真正意图是什么。似乎有很多问题,人们试图在字符串和字节之间进行显式转换,而不是让
{In,Out}putStream{Read,Writ}ers为他们做这件事。我想知道为什么? -
@Michael:谢谢,我想这是有道理的。但这也使它变得比需要的更难,不是吗?我不太喜欢以这种方式工作的语言,因此尽量避免使用它们。我认为 Java 的字符串模型而不是字节模型让事情变得容易多了。 Perl 和 Python 也共享“一切都是 Unicode 字符串”模型。是的,如果你在这三个方面工作,你仍然可以获得字节,但实际上你真正需要的似乎很少:这是相当低级的。另外,如果您知道我的意思,那感觉有点像在错误的方向上刷猫。 :)