8

2 つの文字列を比較しているときに奇妙な問題が発生します。これが私のコードです:

console.log(x == y);
console.log("'" + x + "'=='" + y + "'");
console.log(typeof(x));
console.log(typeof(y));

コンソールには、次のものがあります。

false 
'1Ä4±'=='1Ä4±' 
string
string

私の文字列には奇妙な文字が含まれていると思いますが、どのように比較すればよいですか? Unicode文字を比較するとJavascript文字列比較が失敗することを読みましたが、私の場合は同じソースxからy来て、同じエンコーディングを持っています。

4

4 に答える 4

4

2 つの文字列をエスケープして、どの文字が含まれているかを確認してください。この場合 (Frédéric は考えられるケースをカバーしていますが)、PGP を使用しているため、おそらくバイナリの印刷不可能な char が存在します。

escape(x);
escape(y);

コンソールで、動作中の文字を検出できます。

于 2013-05-28T20:01:29.487 に答える
0

C# で実行しようとしている場合は、正規化で何かを行う必要があるかもしれません。FormC vs FormD vs FormKC vs FormKD リファレンス: http://sharepoint.asia/two-exactly-same-strings-fail-while-comparison-in-c-net/

于 2014-05-01T17:59:44.610 に答える