【发布时间】:2016-01-11 10:04:17
【问题描述】:
在一个脚本中,我从 iconv_strlen() 函数中发现了一个错误。它尝试检查 cp1251 中字符串的 utf8-len。
$len = iconv_strlen($cp1252str, "utf-8");
我尝试使用“utf-8//IGNORE”来解决静音错误,但它不起作用。这是 iconv (//IGNORE 工作) 和 iconv_strlen (//IGNORE 不工作) 的示例
<?php
$cp1252str = '';
for ($i = 128; $i < 256; $i++) {
$cp1252str .= chr($i);
}
iconv("cp1252", "utf-8//IGNORE", $cp1252str);
iconv_strlen($cp1252str, "utf-8//IGNORE");
输出:
PHP 注意:iconv_strlen(): 检测到输入中的非法字符 第 9 行 /home/user/tmp/test.php 中的字符串 PHP 堆栈跟踪:PHP 1。 {main}() /home/user/tmp/test.php:0 PHP 2. iconv_strlen() /home/user/tmp/test.php:9
如何消除此错误?只有@?
【问题讨论】:
-
在那里我能看到什么?只有 iconv() 的解决方案,但 iconv_strlen() 有问题。
标签: php encoding iconv strlen libiconv