Home >Backend Development >PHP Tutorial >PHP htmlentities() 函数
之前运用到了一个PHP导出EXCEL的类,里面有一段代码用来过滤字符串里的引号。用到了htmlentities() 函数,后来导出EXCEL的时候又一个字无法导出,感觉很奇怪,所有字都行就只有这个字不行,后来翻查了一下这个函数的相关资料。
定义和用法htmlentities() 函数把字符转换为 HTML 实体。
htmlentities(string,quotestyle,character-set)
string | 必需。规定要转换的字符串。 |
quotestyle | 可选。规定如何编码单引号和双引号。 ENT_COMPAT - 默认。仅编码双引号。 ENT_QUOTES - 编码双引号和单引号。 ENT_NOQUOTES - 不编码任何引号。 |
character-set | 可选。字符串值,规定要使用的字符集。 ISO-8859-1 - 默认。西欧。 ISO-8859-15 - 西欧(增加 Euro 符号以及法语、芬兰语字母)。 UTF-8 - ASCII 兼容多字节 8 比特 Unicode cp866 - DOS 专用 Cyrillic 字符集 cp1251 - Windows 专用 Cyrillic 字符集 cp1252 - Windows 专用西欧字符集 KOI8-R - 俄语 GB2312 - 简体中文,国家标准字符集 BIG5 - 繁体中文 BIG5-HKSCS - Big5 香港扩展 Shift_JIS - 日语 EUC-JP - 日语 |
原来character-set设置GB2312字符集,无法导出的那个文字是“?”,后来翻查一下,GB2312字符集里面根本就没有“?”字,所以导出来的EXCEL里,含有该字的单元格都为空。
解决方法,character-set设置为UTF-8字符集,这样的话,需要把导出EXCEL的数组也转化成UTF-8字符集。
遇到问题,不要害怕,想办法去解决才是王道。