私はFoswikiを使用していて、本当に奇妙な問題に直面しています。私は人を認証するためにLDAPサーバを使用していて、中国語のエントリが既にutf-8であってもutf-8にエンコードされていることがわかりました。ここで私はコマンドラインで、このテストコードを実行すると、右の出力に彼らが中国語の単語がSTDERR「の文字列を印刷している#がある perlエンコーディングがFoswikiで間違っている場合
$ strの=「程の洋」取得私は
- をやったことあります$ str ";
$ str =〜s /(.)/ sprintf( "0x%x"、ord($ 1))/ eg;
print STDERR "string hex is $ str";私はこれらのコードに
code sample
を使用することはできません
->程洋
->0xe7 0xa8 0x8b 0xe6 0xb4 0x8
、文字列式は、そのための値下げsystem.sorryを混同しているようです。
- 私はapache2のに保持されているFoswikiプラグインシステムで同じコードを実行し、この環境では、
print STDERR
は自動的に、/var/log/apache2/error.logにこの時間をリダイレクトしますあなたが見ることができるように私は、このような出力->\xc3\xa7\xc2\xa8\xc2\x8b\xc3\xa6\xc2\xb4\xc2\x8b ->0xe7 0xa8 0x8b 0xe6 0xb4 0x8b
を取得し、言葉は、それがすでにいたとしても、それは0xe7\xa8\x8b\xe6\xb4\x8b
だ場合、私はそれは大丈夫だと思うが、彼らが再びUTF-8にエンコードされている、URLのような文字列にエスケープされますutf-8、しかしヘックスはまだOKです。 print
に起こっただけでなく、ウェブページ上のものもこのように表示され、どんな中国語の混乱コードにもなります。なぜですか?