2017-09-05 30 views
-1

私はストリングを英語からドイツ語に翻訳していますが、すでに翻訳されているドイツ語はもう一度翻訳されています。ドイツ語とウムラウトとを同じ単語でユニコードで比較する

私はすでに翻訳されているこの単語 "Beim Hinzuf \ u00E4gen"があります。私はこれを同じ単語と比較したいが、ウムラウト「BeimHinzufügen」と比較したい。両方のファイルはISO-8859-1として読み込まれていますが、単語を比較すると、異なるとみなされ、単語は翻訳されません。 UmlautをUnicodeに置き換えて2つを比較しても、それらはまだ異なるとみなされます。これは、ウムラウトを "\ u00E4"で再生するときに追加されるバックスラッシュがあるからです。

誰かが私がやろうとしていることに好ましい方法のアイデアを持っています。

+0

ここに含まれているUnicodeエスケープがファイルにあるかどうか、またはファイルがどのように読み込まれているかは不明です。私たちがあなたを助けるために[mcve]を提供してください。 –

+0

コードを追加します、歓声! –

+1

あなたは 'Beim Hinzuf \ u00E4gen'と' BeimHinzufägen'を比較することはできません。 2番目の文字列に 'ä'があることを確認してください。 – Eugene

答えて

1

@Eugeneが指摘するように、あなたの結果イストが正しいです。 「Hinzuf ü gen」と「Hinzuf ä gen」を比較します。

ユニコード00E4は、 "A"、
ユニコード00FCは "U" です。

+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

私はユニコードを間違ってマッピングしていたことが分かります。私はCollat​​orのことを聞いたことがないので、あまりそれを読むことはありません。ありがとう。 –

+0

もう一度やり直してください:) –

関連する問題