0

我没有那么多控制远程服务器安装扩展,php是5.3.8。但我注意到可以用 pcre 拆分 utf-8 字符串。

例如: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] => ňŹÄ )

(结果来自非 unicode 显示),但很明显,可以在utf-8没有国际扩展名的情况下拆分字符串,然后(我认为)应该可以获取字符代码并使用它们进行计算以创建 ascii url。

4

1 回答 1

0

您唯一需要知道的是表示双、三、四字节代码点的位掩码:

来自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 回答