2009-05-22 6 views
1

私は以前、文字コード化に関するSpolskyの記事と、this from dive into python 3を読んでいます。私はPHPがある時点でUnicodeを取得していることを知っていますが、なぜこれが大きな問題であるかを理解することができません。unicode in ph

php-CLIが使用されている場合は意味があります。しかし、Webサーバーの世界では、この整数を取り、それを文字に変換するのはブラウザに依存しません(文字エンコーディングに基づいています)。

私は何を得ていないのですか?

答えて

0

まあ、一つのことのためにあなたは何とかブラウザがありユニコードに素晴らしいFAQセクションだと、それはあなたの質問のいくつかに答える場合は、Web here.はを参照してください:-)

+0

yeaの場合、文字列はバイトの不変の配列です。ある種のエンコーディングスキームなしでは事実上無意味です。精巧に扱う? –

+2

正確に。また、文字列操作関数がエンコーディングスキームのハンドルを知らない場合、どうやって正しく動作するはずですか? – n3rd

+1

ahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh –

0

を表示する文字列を生成する必要があります。

1

PHPの文字列関数は、文字列を8バイト文字のシーケンスとして扱うことがよくあります。私は文字列関数を通って中国語のテキストに関するあらゆる種類の問題を抱えてきました。たとえば、substr()は、マルチバイト文字を半分にカットすることができます。これは、XMLパーサであらゆる問題を引き起こします。

4

PHPはUTF8を「サポート」していますので、mbstring 1の拡張子を参照してください。問題の大部分は、UTF8データを扱うときにmb *関数を使用しないPHP開発者からのものです。

UTF8文字は複数の文字になることが多いため、strposではなくmb_strpos 2のようなファクトを使用する必要があります。3

ブラウザからUTF8を取得していて、データベースに入れておけば、それを元に戻して、ユーザーに表示するとうまくいきます。あなたがUTF8データにもっと関わっている(実際には主要なテキスト処理をしている)人は、代替言語の使用を検討すべきでしょう。