字符编码问题以及iconv函数转换时莫名少数据问题
2013-03-27 13:30
351 查看
a. 如果欲使用gb2312编码,那么php要输出头:header(“Content-Type: text/html; charset=gb2312"),静态页面添加<meta http-equiv="Content-Type" content="text/html; charset=gb2312">,所有文件的编码格式为ANSI,可用记事本打开,另存为选择编码为ANSI,覆盖源文件。
b. 如果欲使用utf-8编码,那么php要输出头 :header(“Content-Type: text/html; charset=utf-8"),静态页面添加<meta http-equiv="Content-Type" content="text/html; charset=utf-8">,所有文件的编码格式为utf-8。
最近需要用到iconv函数把抓取来过的utf-8编码的页面转成gb2312, 发现只有用iconv函数把抓取过来的数据一转码数据就会无缘无故的少一些。 让我郁闷了好一会儿,去网上一查资料才知道这是iconv函数的一个bug。iconv在转换字符"—"到gb2312时会出错。解决方法很简单,就是在 需要转成的编码后加 "//IGNORE" 也就是iconv函数第二个参数后,如下:
iconv("UTF-8","GB2312//IGNORE",$data)
ignore的意思是忽略转换时的错误,如果没有ignore参数,所有该字符后面的字符串都无法被保存。
b. 如果欲使用utf-8编码,那么php要输出头 :header(“Content-Type: text/html; charset=utf-8"),静态页面添加<meta http-equiv="Content-Type" content="text/html; charset=utf-8">,所有文件的编码格式为utf-8。
最近需要用到iconv函数把抓取来过的utf-8编码的页面转成gb2312, 发现只有用iconv函数把抓取过来的数据一转码数据就会无缘无故的少一些。 让我郁闷了好一会儿,去网上一查资料才知道这是iconv函数的一个bug。iconv在转换字符"—"到gb2312时会出错。解决方法很简单,就是在 需要转成的编码后加 "//IGNORE" 也就是iconv函数第二个参数后,如下:
iconv("UTF-8","GB2312//IGNORE",$data)
ignore的意思是忽略转换时的错误,如果没有ignore参数,所有该字符后面的字符串都无法被保存。
相关文章推荐
- java的数据转换以及程序格式应注意的问题
- Java 基本数据类型与其包装数据类型以及字符串(String)之间的转换问题
- (详解)Java数据类型转换以及精度损失的问题
- 简单问题(1)---数据类型转换的潜规则
- fmri数据分析图像格式及转换问题——基于spm讨论
- 宽字符和窄字符之间的转换,以及对中文的处理问题总汇
- Go语言学习之数据类型以及类型转换(The way to go)
- 关于基本数据类型转换的一个小问题
- SQL Server 临时表的使用以及临时表数据插入问题
- ftl数据类型转换以及list遍历的使用
- Java编程中数据类型转换问题总结
- Application对象的使用-数据传递以及内存泄漏问题 和使用Memory Analyzer tool(MAT)
- C++与Python的混合编程-调用有参函数以及C++数据类型与Python数据类型间的转换
- [新手学java] gradle +spring(4.3) +mybatis(3.4) 之 mybatis 读取数据库数据到 Model中,时间转换问题
- 基本数据类型的包装类型作为参数传递,以及其他引用类型作为参数传递,以及List中值的交换的一些问题
- ~ 使用redis缓存数据需要注意的问题以及个人的一些思考和理解
- 数字类型、字符串类型常用转换,数据精度问题解决
- Android笔记 Application对象的使用-数据传递以及内存泄漏问题
- 关于ListView中继承BaseAdapter重写getview的显示重复数据或报转换错误的问题
- Access中SQL查询的数据类型转换问题