在 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()
and utf8_decode()
,但不幸的是,这里不包含 € 符号,因此utf8_decode('€')
将返回“?” 并且无法转换回来。
TL;DR:您不能使用ord
andchr
像 UTF-8 这样的多字节编码