2016-09-08 16 views
0

私はFoswikiを使用していて、本当に奇妙な問題に直面しています。私は人を認証するためにLDAPサーバを使用していて、中国語のエントリが既にutf-8であってもutf-8にエンコードされていることがわかりました。ここで私はコマンドラインで、このテストコードを実行すると、右の出力に彼らが中国語の単語がSTDERR「の文字列を印刷している#がある perlエンコーディングがFoswikiで間違っている場合

$ strの=「程の洋」取得私は

  1. をやったことあります$ 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に起こっただけでなく、ウェブページ上のものもこのように表示され、どんな中国語の混乱コードにもなります。なぜですか?

    答えて

    0

    これはサポート質問1817 http://foswiki.org/Support/Question1817に関連しているようです。

    私はFoswikiでutf-8をサポートしている経験がなく、誰でも知っている人がいません。

    [email protected]に質問を投稿することをお勧めします。 と国家:

    • Foswikiバージョン
    • Perlバージョン
    • Apacheのバージョン
    • オペレーティングシステム

    それは適切なスキルを持った人に配布されるかもしれません。

    関連する問題