Javascriptcrc32関数とPHPcrc32がUTF8に一致しません
-
27-10-2019 - |
質問
私はPHPからcrc32関数を取得して、javascriptによって生成された結果と一致させようとしています。 4つの異なるjavascriptcrc32ライブラリ( 1 、 2 、 3 、 4 )ネット上で見つけたもので、すべてasciiで正常に機能しますが、utf8文字をスローすると、4つのjsライブラリすべてが同じ間違った答えを出力します。
例:
php:crc32('tést') = 727386373
javascript:crc32.genBytes('tést') = 3109344618
便宜上、これが最もコンパクトなバージョンです。 ジェネラコディセタグプレ
MySQLのcrc32がphpと一致することにも注意する必要があるため、javascriptが間違っていることはかなり確信しています。 javascriptでutf8文字列に対して適切なcrc32を実行する方法についての手がかりはありますか?
解決
わかったので、自分の質問に答えます。重要なのは、htmlヘッドに<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
を追加することでした。次に、次のコードが機能します。これは、
他のヒント
crc32.genBytesを使用する前に、文字列でこの関数を使用してみてください ジェネラコディセタグプレ
両方の文字列が同じ文字セットでエンコードされていることを確認する必要があります。両方の文字列のUTF-8値を確認することをお勧めします。
このページを見てください: PHPcrc32関数と同じ値を返す英語以外の文字列からハッシュされます。