文档章节

php输出ascii汉字的疑惑

酒逍遥
 酒逍遥
发布于 2017/02/15 16:06
字数 303
阅读 11
收藏 0

php中直接输出汉字的十六进制ascii码会直接得到汉字本身

例如下代码:

echo "\xe4\xbd\xa0\xe5\xa5\xbd";

或者

$str="\xe4\xbd\xa0\xe5\xa5\xbd";

echo $str;

输出结果都是 你好  两个汉字.

 

但是当把字符串 \xe4\xbd\xa0\xe5\xa5\xbd 写到一个文件中.然后php把这个文件读取到一个字符串中.

再直接输出.那么就会输出该字符串本身而不是直接的汉字.

但是如果使用eval 函数 把字符串再进行一次赋值.那么又可以输出汉字了.

很奇怪的现象.

 

估计是php对字符串解析的时候有点问题.

 

由于php里汉字可以作为变量名

于是一段很有趣的代码就诞生了

$str="\xe4\xbd\xa0\xe5\xa5\xbd";

$$str="123";

echo $你好;

会看到可以输出 123

 

经过试验已经大致明白原理了...

试试 echo '\xe4\xbd\xa0\xe5\xa5\xbd' 会看到并没有输出汉字而是字符串本身.

应该是php解析器对变量内容进行解析的时候直接解析成ascii对应的字符串内容了.

© 著作权归作者所有

共有 人打赏支持
酒逍遥

酒逍遥

粉丝 48
博文 40
码字总数 35454
作品 0
武汉
高级程序员
PHP: chr和pack、unpack那些事

PHP是一门很灵活的语言。正因为它太灵活了,甚至有些怪异,所以大家对它的评价褒贬不一。其实我想说的是,任何一门语言都有它自身的哲学,有它存在的出发点。PHP为Web而生,它以快速上手、快...

陈亦
2014/02/23
0
31
PHP中substr() mb_substr() mb_struct()的区别和用法及Smar...

PHP substr(),mbsubstr()及mbstrcut的区别和用法及Smarty模板中的truncate调节器浅谈 PHP substr() 函数可以 分割文字,但要分割的文字如果包括中文字符往往会遇到问题,这时可以用mbsubstr(...

sco
2012/10/07
0
0
魔术引号、addslashes和mysql_real_escape_string的防御以及绕过

0x00:php内置过滤函数 php有内置的函数用来防御***,简单的介绍几个函数。 魔术引号 当打开时,所有的 '(单引号),"(双引号),(反斜线)和 NULL 字符都会被自动加上一个反斜线进行转义...

wt7315
06/26
0
0
MySQL怎么存文本不乱码?

导读 MySQL里怎么存储那些看起来会乱码的字符? 我在“UTF8字符集的表怎么直接转UTF8MB4”一文中介绍了如何把表字符集由UTF8直接转换成UTF8MB4的几种方法。 1、只修改字符集(使用默认校验集...

n88lpo
2017/12/06
0
0
深入浅出Node.js(六):Buffer那些事儿

作为前端的JSer,是一件非常幸福的事情,因为在字符串上从来没有出现过任何纠结的问题。我们来看看PHP对字符串长度的判断结果: <? phpecho strlen("0123456789"); echo strlen("零一二三四五...

leeldy
2012/10/25
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

es6

在实际开发中,我们有时需要知道对象的所有属性,原生js给我们提供了一个很好的方法:Object.keys(),该方法返回一个数组 传入对象,返回属性名 var obj = {'a':'123','b':'345'};console.l...

不负好时光
24分钟前
0
0
叮!您收到一份超值Java基础入门资料!

摘要:Java语言有什么特点?如何最大效率的学习?深浅拷贝到底有何区别?阿里巴巴高级开发工程师为大家带来Java系统解读,带你掌握Java技术要领,突破重点难点,入门面向对象编程,以详细示例...

全部原谅
26分钟前
1
0
web.xml容器加载顺序

容器对于web.xml的加载过程是context-param >> listener >> fileter >> servlet

Aeroever
28分钟前
2
0
Docker容器日志查看与清理

1. 问题 docker容器日志导致主机磁盘空间满了。docker logs -f container_name噼里啪啦一大堆,很占用空间,不用的日志可以清理掉了。 2. 解决方法 2.1 找出Docker容器日志 在linux上,容器日...

muzi1994
29分钟前
0
0
J2Cache 和普通缓存框架有何不同,它解决了什么问题?

不少人看到 J2Cache 第一眼时,会认为这就是一个普普通通的缓存框架,和例如 Ehcache、Caffeine 、Spring Cache 之类的项目没什么区别,无非是造了一个新的轮子而已。事实上完全不是一回事!...

红薯
32分钟前
506
14

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部