0

拡張機能をインストールするためにリモートサーバーをそれほど制御することはできません。phpは5.3.8です。しかし、utf-8 文字列を pcre で分割できることに気付きました。

たとえば、次のようになります。preg_split('@@u','bücher',-1,PREG_SPLIT_NO_EMPTY);

与えます:Array ( [0] => b, [1] => ├╝, [2] => c, [3] => h, [4] => e, [5] => r )

または中国語の単語:中国/中华の場合:Array ( [0] => ńŞş, [1] => ňŤŻ, [2] => /, [3] => ńŞş, [4] => ňŹÄ )

(結果は非ユニコード表示によるものです)が、国際的な拡張子なしで文字列を分割できることは明らかでutf-8あり、(私が思うに)文字コードを取得してそれらを計算してASCII URLを作成できるはずです。

4

1 に答える 1

0

知っておく必要があるのは、2 バイト、3 バイト、4 バイトのコード ポイントを示すビットマスクだけです。

http://en.wikipedia.org/wiki/UTF-8の表

Bits  Last Code Point  Octet 1  Octet 2  Octet 3  Octet 4

 7    U+007F           0xxxxxxx    -/-      -/-      -/-
11    U+07FF           110xxxxx 10xxxxxx    -/-      -/-
16    U+FFFF           1110xxxx 10xxxxxx 10xxxxxx    -/-
21    U+10FFFF         11110xxx 10xxxxxx 10xxxxxx 10xxxxxx

私はphpを話せませんが、表示されたビットマスクを使用して、実際に解釈せずにutf-8文字シーケンスをスキャンする既存のコードが見つかると確信しています。

于 2011-11-07T11:51:52.037 に答える