首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >iconv_strlen() -//忽略不工作

iconv_strlen() -//忽略不工作
EN

Stack Overflow用户
提问于 2016-01-11 10:04:17
回答 1查看 538关注 0票数 0

在一个脚本中,我从iconv_strlen()函数中创建了一个错误。它尝试在cp1251中检查字符串的utf8 8-len。

代码语言:javascript
复制
$len = iconv_strlen($cp1252str, "utf-8");

我尝试使用“utf-8//忽略”来处理静音错误,但它不起作用。下面是一个示例,它包含了iconv (//忽略工作)和iconv_strlen (//忽略非工作)。

代码语言:javascript
复制
<?php
$cp1252str = '';

for ($i = 128; $i < 256; $i++) {
    $cp1252str .= chr($i);
}

iconv("cp1252", "utf-8//IGNORE", $cp1252str);
iconv_strlen($cp1252str, "utf-8//IGNORE");

输出:

iconv_strlen():检测到第9行PHP跟踪中/home/user/tmp/test.php输入字符串中的非法字符:PHP1.main}() /home/user/tmp/test.php:0 PHP2.PHP2.HOME/user/tmp/test.php:9

我怎样才能消除这个错误呢?只有@?

EN

回答 1

Stack Overflow用户

发布于 2016-01-22 11:12:04

https://bugs.php.net/bug.php?id=71346&edit=2上获得答案

这是因为iconv_strlen()中的字符集参数用于输入字符串,而“//忽略”标志只打算在转换过程中的输出字符集中使用,即在iconv()调用中。 “//忽略”意味着不能在输出字符集中表示的字符将被丢弃。但是在您的示例中,您提供了一个无效的UTF-8输入字符串,并告诉iconv_strlen()它是在UTF-8字符集中编码的,因此您正确地收到了输入字符串包含非法字符的通知。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34718698

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档