使用UTF char \& \#232编码java字符串

时间:2011-07-14 18:35:03

标签: java encoding utf-8

我有包含奇怪的UTF字符的字符串...我该如何处理?

例如è= \&#232 ...

所以我有

String str = "Pel\&\#232" ;
String correct str2 =??? ; // i'd like to have "Pelè"

然后我有很多这种奇怪的字符,我真的不知道如何处理......

另一个例子:“J。Ho \ř ej \š”

有人可以帮忙吗?


非常感谢你的回答 我正在阅读一个大文本文件,从我无法更改的网站下载。 在文件本身中,人的名字就像那样保存。不是文件的编码。 我也不能手动完成,因为我有300个这个问题的名字。

另一个例子:

在文本文件中,该人的姓名是“Constantin S \â rbu”,应该是Sîrbu

我被困了

编辑***我解决了创建一个手动功能,将HTML值与unicode联系起来......花了一段时间但它有效。

4 个答案:

答案 0 :(得分:1)

我认为你可以把è放在字符串本身。就像是: String s = "Pelè";

答案 1 :(得分:1)

Java Unicode字符看起来像\uXXXX XXXX正好是四位十六进制数字,没有终止;或任何需要的东西。

Java需要十六进制的Unicode,但你的232是基数10.此外,Java总是需要四个十六进制数字。由于232 denary等于E8十六进制,因此在Java字符串中给出è= \u00E8

System.out.println("Pel\u00E8 was a great footballer.");

答案 2 :(得分:0)

只需将源文件的编码设置为UTF-8(这应该在编辑器的首选项中完成)。然后只需使用String str = "Pelè"

答案 3 :(得分:0)

您说您无法更改输入文件,但是如何使用您想要的文本生成中间文件呢?

perl -pe 's/\\&#(\d+)/ sprintf("\\u%04X", $1) /ge' inputfile >intermediate