2017-09-05 228 views
-1

我正在将字符串从英语翻译成德语,但是已翻译的德语单词正在翻译中。用unicode比较德语单词和变音符号相同的单词

说我有这个词“Beim Hinzuf \ u00E4gen”,它已被翻译。我想比较一下这个词,但是用元音变音,“BeimHinzufügen”。这两个文件都被读作ISO-8859-1,但是当我比较这些文字时,他们被认为是不同的,并且这个词又被翻译成我不想要的。即使我用unicode替换变音符号并比较两者,它们仍然被视为不同。我确信这是因为当我通过“\ u00E4”重放元音变音时,会添加一个额外的反斜杠。

任何人都有我想要做的首选方法的想法。

+0

目前还不清楚你在这里包含的Unicode转义是否在文件中,或者文件如何被读取。请提供[mcve],以便我们帮助您。 –

+0

会添加代码,欢呼! –

+1

是不是你想比较'Beim Hinzuf \ u00E4gen'与'BeimHinzufägen';请注意第二个字符串中的“ä” – Eugene

回答

1

由于@Eugene指出的那样,你的结果IST正确。您比较“Hinzuf ü gen”与“Hinzuf ä gen”,这是不同的。

Unicode 00E4是“ä”,
Unicode 00FC是“ü”。

+0

谢谢,我甚至没有意识到我已经映射错误的元音。 –

1

看来你需要一个Collator比较这些:

String left = "Beim Hinzuf\u00E4gen"; 
String right = "Beim Hinzufägen"; 
Collator c = Collator.getInstance(); 
c.setStrength(Collator.PRIMARY); 

int result = c.compare(left, right); // 0 
+0

原来我错误地映射了unicode。我以前从来没有听说过Collat​​or,所以会从头到尾读过它。谢谢。 –

+0

完成,再次感谢:) –