PHP中的chr函數可以將一個ASCII碼轉換成對應的字符,例如chr(65)將會輸出字符A。然而在某些情況下,我們需要將Unicode編碼轉換成對應的字符,這時候就需要用到chr函數的變形——unicode編碼的chr函數,即:chr(int $codepoint)。
Unicode是一種全球通用的字符編碼標準,它納入了幾乎所有語言中的字符,并將它們用16進制數字來表示。例如:漢字“你”在Unicode標準下的編碼為U+4F60,轉換成10進制就是20320。所以要輸出字符“你”,需要使用chr(0x4f60)或chr(20320)。
echo chr(0x4f60); //輸出“你”
echo chr(20320); //輸出“你”
除了Unicode編碼字符,chr函數還可以輸出一些特殊字符。例如常見的制表符、換行符、回車符等等。下表列出了chr函數輸出的一些特殊字符及其對應的ASCII碼值。
字符 | ASCII碼值 | 描述 |
---|---|---|
\0 | 0 | 空字符(null) |
\t | 9 | 水平制表符(tab) |
\n | 10 | 換行符(line feed) |
\r | 13 | 回車符(carriage return) |
\x{hhhh} | --- | Unicode編碼16進制表示形式 |
值得注意的是,如果要輸出Unicode字符的十六進制形式,需要使用\x{hhhh}的格式,其中hhhh是Unicode編碼的十六進制表示形式。
echo "\u4F60"; //這行會報錯,因為PHP不支持這種語法。
echo "\x{4F60}"; //輸出“你”
除了chr函數,還有一個將Unicode編碼轉換成字符的函數——mb_chr(int $codepoint, [string $encoding]),其中$encoding表示字符的編碼方式,默認為UTF-8。
echo mb_chr(0x4f60); //輸出“你”
無論是chr函數還是mb_chr函數,都可以將Unicode編碼轉換成對應的字符。可以根據具體需求選擇不同的函數。
上一篇php chr 中文
下一篇php chr 65