php unicode 16位

时间:2011-07-12 22:39:06

标签: php unicode character-encoding

如何将16位unicode字符附加到php

中的字符串
$test = "testing" . (U + 199F);

从我看到的,\ x只需要8位字符,即ascii

4 个答案:

答案 0 :(得分:0)

来自the manual

  

PHP仅支持256个字符集,因此不提供本机Unicode支持。

我猜你可以输入手动编码的UTF-8序列。

您还可以输出UCS4作为字节序列,并使用iconv("UTF-32LE", "UTF-8", $str);将其转换为UTF-8以进行进一步处理。您无法一次性将代码点输入为32位代码单元。

答案 1 :(得分:0)

Unicode字符不直接存在于PHP(*)中,但您可以处理包含UTF-8编码字符的字符串。这是将数字字符代码点转换为UTF-8的一种方法:

function unichr($i) {
    return iconv('UCS-4LE', 'UTF-8', pack('V', $i));
}

$test= 'testing'.unichr(0x199F);

(*:和'16位'的Unicode字符根本不存在; Unicode的代码点超出U + FFFF。在UTF-16中有16位'代码单元',但这是一个丑陋的编码你不太可能用PHP见面。)

答案 2 :(得分:0)

因为unicode只是多字节而PHP只支持单字节,所以你可以用多个单字节创建多字节字符:)

$test = "testing\x19\x9F";

答案 3 :(得分:-1)

尝试:

$test = "testing" . "\u199F";