Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/247.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php unicode 16位_Php_Unicode_Character Encoding - Fatal编程技术网

php unicode 16位

php unicode 16位,php,unicode,character-encoding,Php,Unicode,Character Encoding,如何在php中将16位unicode字符附加到字符串中 $test = "testing" . (U + 199F); 据我所知,\x只接受8位字符,即ascii $test = "testing" . "\u199F"; 发件人: PHP只支持256个字符集,因此不提供本机Unicode支持 我想您可以输入一个手动编码的UTF-8序列 您还可以将UCS4作为字节序列输入,并使用iconv(“UTF-32LE”、“UTF-8”、“$str”)将其转换为UTF-8以便进一步处理。您不能一次性将

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

$test = "testing" . (U + 199F);
据我所知,\x只接受8位字符,即ascii

$test = "testing" . "\u199F";
发件人:

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

我想您可以输入一个手动编码的UTF-8序列


您还可以将UCS4作为字节序列输入,并使用iconv(“UTF-32LE”、“UTF-8”、“$str”)将其转换为UTF-8以便进一步处理。您不能一次性将代码点作为32位代码单元输入。

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中不太可能遇到的丑陋编码。)

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


已经有了,根本不起作用,我相信php甚至不支持“\u”。仅仅通过传递文本字符?也可以在这里使用。另外,它不是16位Unicode字符。Unicode是21位。如果你认为Unicode是“2字节”,那么你有很多东西要学。并非如此。@Drake-unicode代码点从0运行到1114111(请参阅位于的unicode常见问题解答)。UTF-16使用单个16位对最常见的63k字符进行编码,并对其他1m码点使用16位(代理)对。
$test = "testing\x19\x9F";