繁体   English   中英

PHP:chr函数问题与特殊字符

[英]PHP: chr Function Issue with Special characters

在PHP中,我有以下代码:

<?php
  echo "€<br>";
  echo ord("€") . "<br>";
  echo chr(128) . "<br>";

我得到以下输出:

€
128
�

为什么chr功能不能为我提供€符号? 我怎么能得到€? 我真的需要这个工作。 提前致谢。

chrord仅适用于单字节ASCII字符。 更具体地说, ord只查看其参数的第一个字节。

欧元符号是UTF-8中的三字节字符: 0xE2 0x82 0xAC ,因此ord("€") (带有UTF-8符号)返回226(0xE2)

对于同样存在于ISO-8859-1(latin1)字符集中的字符,您可以使用utf8_encode()utf8_decode() ,但不幸的是,那里没有包含€符号,因此utf8_decode('€')将返回“ ?” 并且无法转换回来。

TL; DR:您不能将ordchr用于UTF-8等多字节编码

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM