首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

从泰语ISO-IR-166到utf-8的php iconv字符编码不起作用

首先,ISO-IR-166是一种字符编码标准,用于表示泰语字符集。而UTF-8是一种通用的字符编码标准,支持全球范围内的字符集。

在PHP中,可以使用iconv函数来进行字符编码的转换。但是,如果在将泰语ISO-IR-166编码转换为UTF-8时出现问题,可能是由于以下几个原因:

  1. 编码不支持:iconv函数只能转换支持的字符编码,如果泰语ISO-IR-166编码不在支持列表中,转换就会失败。在这种情况下,可以尝试使用其他的字符编码转换函数或者自定义转换方法。
  2. 编码声明问题:在进行字符编码转换之前,需要确保源字符串的编码声明是正确的。如果源字符串的编码声明不正确,iconv函数可能无法正确识别源编码,导致转换失败。可以使用mb_detect_encoding函数来检测源字符串的编码,并使用mb_convert_encoding函数将其转换为正确的编码。
  3. PHP配置问题:有时候,PHP的配置文件中可能没有启用对应的字符编码转换模块。可以通过检查php.ini文件中的"extension"配置项,确保相关的扩展模块已经启用。

针对这个问题,可以尝试以下解决方案:

  1. 确认泰语ISO-IR-166编码是否在iconv函数的支持列表中。如果不支持,可以尝试使用其他字符编码转换函数,如mb_convert_encoding。
  2. 检查源字符串的编码声明是否正确,可以使用mb_detect_encoding函数来检测源字符串的编码,并使用mb_convert_encoding函数将其转换为正确的编码。
  3. 检查PHP配置文件中是否启用了相关的字符编码转换模块,可以通过检查php.ini文件中的"extension"配置项来确认。

总结起来,解决这个问题需要确认编码是否支持、源字符串的编码声明是否正确,并检查PHP配置文件中是否启用了相关的字符编码转换模块。如果以上方法都无法解决问题,可以尝试使用其他的字符编码转换函数或者自定义转换方法。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

PHP iconv()函数字符编码转换问题讲解

phpiconv函数库能够完成各种字符集间转换,是php编程中不可缺少基础函数库;但有时候iconv对于部分数据转码会无缘无故少一些。比如在转换字符”—”gb2312时会出错。...在使用这个函数进行字符编码转换时,需要注意,如果将utf-8转换为gb2312时,可能会出现字符串被截断情况发生。...:如果在目标编码中找不到与源编码相匹配字符,会选择相似的字符进行转换。...iconv ( string in_charset, string out_charset, string str )注意:第二个参数,除了可以指定要转化编码以外,还可以增加两个后缀://TRANSLIT...和 //IGNORE,其中 //TRANSLIT 会自动将不能直接转化字符变成一个或多个近似的字符,//IGNORE 会忽略掉不能转化字符,而默认效果是第一个非法字符截断。

4.2K31

理解字符编码ASCIIUTF-8及Base64

然而,我们需要一种方法来将这些编号编码为字节序列,这就是UTF-8、UTF-16和UTF-32作用。 UTF-8 UTF-8是一种变长Unicode编码。...UTF-8使用14个字节来表示一个字符,取决于字符Unicode编号。UTF-8优点是它向后兼容ASCII,即所有的ASCII字符UTF-8中都有相同编码。...不是所有的二进制数据都能无失真地转换为有效UTF-8编码UTF-8编码有特定规则和格式,不是所有的字节序列都符合UTF-8编码规则。...以下是UTF-8编码一些基本规则: ASCII字符(Unicode编号为0127)使用一个字节表示,其最高位始终为0。...非ASCII字符使用24个字节表示,其中第一个字节最高位为1,后续字节最高位为10。 因此,如果一个字节序列不符合这些规则,它将不能被正确解码为UTF-8编码字符

10010

PHPiconv函数

; echo ''; echo iconv('GB2312', 'UTF-8', $str); //将字符编码GB2312转UTF-8 echo '';...//得到当前页面编码信息 echo iconv_strlen($str, 'UTF-8'); //得到设定编码字符串长度 //也有这样用 $content = iconv...PHP另外一个函数iconv也是用来转换字符编码,与上函数功能相似。...会自动将不能直接转化字符变成一个或多个近似的字符,//IGNORE 会忽略掉不能转化字符,而默认效果是第一个非法字符截断。...今 天在处理抓取内容时候,当采用iconv进行编码转换时候,发现结果会中断,猜是字符问题,考虑怎么跳过目标字符集不存在字符,查手册发现 iconv函数只有三个参数,好像不行,然后查网上有人说可以

96680

学习PHPiconv扩展相关函数

学习PHPiconv扩展相关函数 想必 iconv 这个扩展相关函数大家多少都接触过,做为 PHP 默认扩展它已经存在了很久,也是我们在操作字符编码时经常会使用函数。...iconv 根据编码获取字符长度、指定位置及截取字符串 在面对中文字符操作时,我们使用默认 strlen() 之类函数返回中文字符长度是不正确,这就牵涉编码问题。...iconv_strlen() 就是获取字符串长度,如果不给第二个参数就按默认字符编码来获取字符串长度。...iconv_strpos() 和 iconv_strrpos() 和 strpos() 作用一样,返回某个字符第一次出现位置,一个是从前往后(从左往右),另一个是后往前(右往左)。...编码参数内容通过字段名就可以看出来,什么编码转换成什么编码,行长度多少,换行符是什么。

1.2K40

文本编码转换工具iconv 附批量转换文件编码命令

网络上下载好多文本是GBK编码,在mac电脑上打开是乱码 除了下载有多种编码文本编辑器外,通过终端也可以进行转码 iconv -f GBK -t UTF-8 原文件名 > 随便起个名 文本内容编码...:用Terminal 里 iconv 命令批量转换文本编码UTF8....-f GB18030 -t UTF8 {} > {}.txt" \; 上面的 -f 后参数是针对GB18030,如果你转换前编码为GB2312,将 GB18030 代替为 GB2312 即可。...最常用几个参数 重要参数是: -f是表示什么编码,后面跟编码 -t是表示转换到什么编码,后面跟编码 >表示哪个文件保存为哪个文件 较少用参数: -c 输出中忽略无效字符 -o, --output...=FILE 输出文件 -s, --silent 关闭警告 iconv支持哪些编码: AlbertdeAir:~ Albert$ iconv --list ANSI_X3.4-1968 ANSI_X3.4

6.4K90

关于PHP字符编码函数区别

在以前学习当中,比方说有一次写采集过程中转换字符编码时候老是失败,转换结果总没有完全输出,后来经过网络查询得知是iconv有一个“-”漏洞,所以我们有必要掌握PHP另一个字符编码函数mb_convert_encoding...mb_convert_encoding函数为php内部多字节字符编码转换函数,可以在有需要使用场合(如:解决在GB2312编码环境下使用Ajax产生中文字乱码问题)方便进行编码转换,以解决网页乱码问题...这样把前128个字符以外(显示字符字符集都用 NCR(Numeric character reference,如“汉字”将转换成“汉字”这种形式)来表示,这样编码在任意编码环境下页面都能正常显示。...另外有一种区别说法是 1、mb_convert_encoding() 该函数会根据内容自动识别编码,但是执行效率比iconv差; 2、然后有一种说法就是iconv()在一些字符转换下会不正常,网上有种说法就是...:发现iconv在转换字符”—”gb2312时会出错,如果没有ignore参数,所有该字符后面的字符串都无法被保存。

86520

关于PHP字符编码函数区别

在以前学习当中,比方说有一次写采集过程中转换字符编码时候老是失败,转换结果总没有完全输出,后来经过网络查询得知是iconv有一个“-”漏洞,所以我们有必要掌握PHP另一个字符编码函数mb_convert_encoding...mb_convert_encoding函数为php内部多字节字符编码转换函数,可以在有需要使用场合(如:解决在GB2312编码环境下使用Ajax产生中文字乱码问题)方便进行编码转换,以解决网页乱码问题...这样把前128个字符以外(显示字符字符集都用 NCR(Numeric character reference,如“汉字”将转换成“汉字”这种形式)来表示,这样编码在任意编码环境下页面都能正常显示。...另外有一种区别说法是 1、mb_convert_encoding() 该函数会根据内容自动识别编码,但是执行效率比iconv差; 2、然后有一种说法就是iconv()在一些字符转换下会不正常,网上有种说法就是...: 发现iconv在转换字符”—”gb2312时会出错,如果没有ignore参数,所有该字符后面的字符串都无法被保存。

1.3K80

【作者投稿】宽字符注入详解与实战

现在基本都会将mysql连接配置设置为: [set character_set_client=binary] 来解决这个问题,这篇博客将介绍php中因为编码字符编码转换导致注入问题。...iconv造成严重后果 很多cms会将接收到数据,调用这样一个函数,转换其编码iconv('utf-8','gbk',$_GET['id']);,目的一般是避免乱码,特别是搜索框位置 ?...报错说明我们錦被iconvutf-8转换成gbk后,变成了%e5%5c,而后面的'被addslashes变成了%5c%27,这样组合起来就是%e5%5c%5c%27,两个%5c就是\,正好把反斜杠转义了...利用是将\转移掉。 利用iconv将gbk转换成utf-8,则可以直接用宽字节注入姿势来。gbk汉字2字节,utf-8汉字是3字节,若把gbk转换成utf-8,则php会每两个字节一转换。...只要我们把前端html/js/css所有编码设置成gbk,mysql/php编码设置成gbk,就不会出现乱码问题。不用画蛇添足地去调用iconv转换编码,造成不必要麻烦。

1.5K00

浅析白盒审计中字符编码及SQL注入

php文档中,大家会发现一个函数,mysql_real_escape_string,文档里说了,考虑连接的当前字符集。 ?...那么,当我们錦被iconvutf-8转换成gbk后,变成了%e5%5c,而后面的'被addslashes变成了%5c%27,这样组合起来就是%e5%5c%5c%27,两个%5c就是\,正好把反斜杠转义了...这次直接用宽字符注入姿势来,但实际上问题出在php而不是mysql。我们知道一个gbk汉字2字节,utf-8汉字3字节,如果我们把gbk转换成utf-8,则php会每两个字节一转换。...2我们可以看到,对于多字节符号,其第2、3、4字节前两位都是10,也就是说,\(0x0000005c)不会出现在utf-8编码中,所以utf-8转换成gbk时,如果有\则php会报错: ?...只要我们把前端html/js/css所有编码设置成gbk,mysql/php编码设置成gbk,就不会出现乱码问题。不用画蛇添足地去调用iconv转换编码,造成不必要麻烦。

86531

PHP用mb_string函数库处理与windows相关中文字符

UTF-8编码正则模式字符串中中文在gbk编码文件中并不能正确匹配。...一开始,我并没有什么办法,试过把PHP脚本文件编码也改成GBK,也可以用,但是想到这种方法太low了,所以找一找PHP中有没有函数可以满足我需求。...我们常使用: $out_charset='utf-8'; $fileName=iconv($fileName,$out_charset,'gbk'); 来处理文件名,将文件名改gbk改为UTF-8而内容不变...基原型跟iconv()函数差不多,只是它没有对输出函数后缀修饰,它也没有对字符串长度明确限制。 而且我们看到$from_encoding是可选,它可以自动识别源编码。...strpos("欢迎来访问","问",0)返回结果是12,因为脚本是UTF-8编码,而将字符串转为UTF-8编码后,每个中文字符会占用3个字节。

853100

php 实现文件下载

> 3、文件编码问题解决方法:   如果文件名是中文,php函数不能识别中文文件名,一般如果程序编码utf-8php函数比较古老,只能识别gb2312编码中文,所以把中文用iconv(“原编码...”,”要转成编码”,”要转码字符串”)函数可以转码。   ...比如,把一个字符utf-8转码为gb2312   $file_name=iconv(“utf-8”,”gb2312”,”$file_name”); 4、几点注意事项:  header("Content-type...:text/html;charset=utf-8")作用:在服务器响应浏览器请求时,告诉浏览器以编码格式为UTF-8编码显示该内容  关于file_exists()函数不支持中文路径问题:因为php...函数比较早,不支持中文,所以如果被下载文件名是中文的话,需要对其进行字符编码转换,否则file_exists()函数不能识别,可以使用iconv()函数进行编码转换  $file_path 是文件路径

2.2K40

PHPjQuery

而作为后端(服务端)程序员来说,他们同样需要分析HTML内容,HTML中提取符合要求HTML片段、获 取某个符合条件属性值等。...官方文档是说,这个DOM扩展包使用UTF-8编码,当遇到 ISO-8859-1 编码文本时,使用 utf8_encode() 和 utf8_decode() 编码和解码,遇到其它编码时,使用Iconv...:( 首先我是在台式机上开发测试,是Window7,这种环境下会出现两种情况,一种情况是HTML字符集是GBK/gb2312,一种情况是字符集是UTF-8。...奇怪是,两个同样是gb2312字符不同页面,用phpQuery解析后,一个会有乱码,一个没有乱码。同样,两个同样是UTF-8字符不同页面,也会出现这种情况。所有,对我来说,没有规律可言。...还有一点很重要,在使用iconv函数转码是,一定要使用GBK,而不是使用gb2312,如果使用gb2312,iconv函数会很容易发生非法字符报错,使得转码失败。

1.3K30

java json decode 中文_关于json_decode乱码及NULL解决方法「建议收藏」

json_decode():对JSON 格式字符串进行解码,接受一个JSON 格式字符串并且把它转换为 PHP变量。...(1)将数据转换成数组之后,打印会显示NUll: 原因之一json_decode只支持utf-8. iconv(‘gbk’,’utf-8′, $result_string);用iconv函数将写入数据...gbk编码格式转换为要输出utf-8编码格式,若原本数据是utf-8格式,则不用此步骤,否则还会出现乱码 注意:使用iconv函数并不是php自带,需要可以修改php.ini文件,将extension...=php_iconv.dll前”;”去掉,同时你要copy你php安装文件下iconv.dll到你winnt/system32下(如果你dll指向是这个目录)。...,文件是utf-8格式,里面是json格式数据 //getcontent = iconv(“gbk”, “utf-8//ignore”,contents);//若文件原本是utf-8格式,无需转换 getcontent

2.2K20

PHP代码审计笔记--SQL注入

扩展世界上所有多字节编码,只要低位范围中含有0x5c编码,就可以进行宽字符注入。...> 测试语句: 錦' 錦这个字:它utf-8编码是%e9%8c%a6,它gbk编码是%e5%5c 錦被iconvutf-8转换成gbk后,变成了%e5%5c,而后面的’被addslashes变成了...$id=iconv('gbk','utf-8',$id); //使用%df%27来测试 一个gbk汉字2字节,utf-8汉字3字节,如果我们把gbk转换成utf-8,则php会每两个字节一转换。...其他函数: mb_convert_encoding($id,'utf-8','gbk') //GBK To UTF-8iconv('gbk','utf-8',$id)一样 0x03 编码解码 找一些编码解码函数来绕过防护...PHP 有很多可以用于检查输入函数,从简单变量函数和字符类型函数(比如 is_numeric(),ctype_digit())复杂 Perl 兼容正则表达式函数都可以完成这个工作。

1.6K20

Go 语言基础入门教程 —— 数据类型篇:字符串和字符类型

字符串 基本使用 在 Go 语言中,字符串是一种基本类型,默认是通过 UTF-8 编码字符序列,当字符为 ASCII 码时则占用 1 个字节,其它字符根据需要占用 2-4 个字节,比如中文编码通常需要...字符编码转换是处理文本文档(比如 TXT、XML、HTML 等)时非常常见需求,不过 Go 语言默认仅支持 UTF-8 和 Unicode 编码,对于其他编码,Go 语言标准库并没有内置编码转换支持...获取索引7(含)之后子串 str_3 := str[0:5] // 获取索引0(含)索引5(不含)之间子串 fmt.Println(str_1) fmt.Println(str_2) fmt.Println...(str_3) 上述代码打印结果如下: hello world hello 字符串切片和 PHP substr 函数使用方式有所差异,通过「:」对字符串进行切片,冒号之前数字代表起始点(为空表示...0开始),之后数字代表结束点(为空表示字符串最后),而不是子串长度。

67030

PHP字符编码问题

大家都知道,不同字符编码,其在内存占用字节数不一样。如 ASCII编码字符占用1个字节,UTF-8编码中文字符是3字节,GBK为2个字节。...PHP 也自带几种字符串截取函数,其中常用到就是 substr 和 mb_substr。 使用substr截取中文字符时会出现乱码,这是因为substr是按字节来截取。...编码相关php函数使用 ord(substr(str, i, 1)) > 0xa0) ord($string)返回字符串第一个字符ASC码,通过这个来判断截取字符串第一个字符是不是汉字,因为例如...out_charset , string 如GB2312 转UTF-8: iconv("GB2312","UTF-8",$text) url 编码urlencode 编码后返回字符串中除了...2、urldecode() 和 rawurldecode() 解码出字符串是 UTF-8格式编码,如果URL中含有非UTF-8 编码中文,则要把解码出字符串进行转换。

2.4K20
领券