[英]PHP: chr Function Issue with Special characters
在PHP中,我有以下代码:
<?php
echo "€<br>";
echo ord("€") . "<br>";
echo chr(128) . "<br>";
我得到以下输出:
€
128
�
为什么chr功能不能为我提供€符号? 我怎么能得到€? 我真的需要这个工作。 提前致谢。
chr
和ord
仅适用于单字节ASCII字符。 更具体地说, ord
只查看其参数的第一个字节。
欧元符号是UTF-8中的三字节字符: 0xE2 0x82 0xAC
,因此ord("€")
(带有UTF-8符号)返回226(0xE2)
对于同样存在于ISO-8859-1(latin1)字符集中的字符,您可以使用utf8_encode()
和utf8_decode()
,但不幸的是,那里没有包含€符号,因此utf8_decode('€')
将返回“ ?” 并且无法转换回来。
TL; DR:您不能将ord
和chr
用于UTF-8等多字节编码
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.