私は以前、文字エンコーディングに関する Spolsky の記事と、Python 3 へのダイブからの this を読みました。ある時点でphpがUnicodeを取得していることは知っていますが、なぜこれがそれほど大きな問題なのか理解できません。
php-CLI が使用されている場合、それは理にかなっています。ただし、Webサーバーの世界では、この整数を取得して文字に変換するのはブラウザ次第ではありません(文字エンコーディングに基づいています)。
何が得られないのですか?
私は以前、文字エンコーディングに関する Spolsky の記事と、Python 3 へのダイブからの this を読みました。ある時点でphpがUnicodeを取得していることは知っていますが、なぜこれがそれほど大きな問題なのか理解できません。
php-CLI が使用されている場合、それは理にかなっています。ただし、Webサーバーの世界では、この整数を取得して文字に変換するのはブラウザ次第ではありません(文字エンコーディングに基づいています)。
何が得られないのですか?
PHP は UTF8 を「サポート」しています。mbstring 1拡張子を見てください。問題のほとんどは、UTF8 データを処理するときに mb* 関数を使用しない PHP 開発者に起因します。
多くの場合、UTF8 文字は複数の文字であるため、 strpos 3ではなくmb_strpos 2のような事実を認識する関数を使用する必要があります。
ブラウザからUTF8を取得している場合は正常に機能します->データベースに入れます->元に戻します->ユーザーに表示します。UTF8 データ (または実際には主要なテキスト処理) にもっと関係することをしている場合は、おそらく代替言語の使用を検討する必要があります。
PHP 文字列関数は、多くの場合、文字列を 8 バイト文字のシーケンスとして扱います。文字列関数を通過する中国語のテキストには、あらゆる種類の問題がありました。substr()
たとえば、マルチバイト文字を半分にカットできますが、これは XML パーサーにさまざまな問題を引き起こします。
Unicode と Web に関する素晴らしい FAQ セクションがここにあります。それがあなたの質問のいくつかに答えるかどうか見てください。
まあ、1 つのこととして、ブラウザが表示する文字列を何らかの方法で生成する必要があります :-)