在Perl print chr(0x263a);
中会打印出完美的笑脸 - ☺
。
在PHP print chr(0x263a);
中将打印冒号:
。
有谁知道为什么?
答案 0 :(得分:15)
Perl's chr function以ascii或unicode的形式返回该数字所代表的字符。
返回字符集中该NUMBER表示的字符。例如,chr(65)是ASCII或Unicode中的“A”,而chr(0x263a)是Unicode笑脸。
PHP's chr function仅适用于ascii。
返回包含ascii指定字符的单字符字符串。
PHP打印冒号的原因是因为ascii值介于0和255之间......
0x263a % 256 = 58
ascii中的58是冒号。
答案 1 :(得分:7)
阅读chr文档页面。 chr
仅适用于php
中的ASCII值。
向下看那个页面,那里有Unicode转换帮助器(例如,查找uchr
)。