iconv函数提示错误,求解

a7758521haha 2011-05-11 06:03:59
在网上看到json的文章,打算测试一下,结果,出现错误,先附上代码:

<?php
@header("Content-type:text/html;charset=GB2312");
$arr = array ('name'=>"贾朝藤",'age'=>19,'sex'=>"男",'add'=>"中国石家庄");
echo json_encode($arr);
echo "<br/>";
$name = iconv("GBK","UTF-8","贾朝藤");
$sex = iconv("GBK","UTF-8","男");
$add = iconv("GBK","UTF-8","中国石家庄");
$arr = array ('name'=>"$name",'age'=>19,'sex'=>"$sex",'add'=>"$add");
echo $str=json_encode($arr);
?>

错误信息如下:

{"name":"\u8d3e\u671d\u85e4","age":19,"sex":"\u7537","add":"\u4e2d\u56fd\u77f3\u5bb6\u5e84"}

Notice: iconv() [function.iconv]: Detected an illegal character in input string in D:\wamp\www\ajax\js_php.php on line 6

Notice: iconv() [function.iconv]: Detected an illegal character in input string in D:\wamp\www\ajax\js_php.php on line 7

Notice: iconv() [function.iconv]: Detected an illegal character in input string in D:\wamp\www\ajax\js_php.php on line 8
{"name":"\u7490\u70ac","age":19,"sex":"","add":"\u6d93"}

之后百度,谷歌了一番,得到两个方法:
1.把gb2312换为gbk,同样出错,错误信息如下

{"name":"\u8d3e\u671d\u85e4","age":19,"sex":"\u7537","add":"\u4e2d\u56fd\u77f3\u5bb6\u5e84"}

Notice: iconv() [function.iconv]: Detected an incomplete multibyte character in input string in D:\wamp\www\ajax\js_php.php on line 6

Notice: iconv() [function.iconv]: Detected an incomplete multibyte character in input string in D:\wamp\www\ajax\js_php.php on line 7

Notice: iconv() [function.iconv]: Detected an illegal character in input string in D:\wamp\www\ajax\js_php.php on line 8
{"name":"\u7490\u70ac\u6e5e\u9498","age":19,"sex":"\u9422","add":"\u6d93"}

2.在UTF-8后加//IGNORE,加上后提示如下:

{"name":"\u8d3e\u671d\u85e4","age":19,"sex":"\u7537","add":"\u4e2d\u56fd\u77f3\u5bb6\u5e84"}

Notice: iconv() [function.iconv]: Detected an incomplete multibyte character in input string in D:\wamp\www\ajax\js_php.php on line 6

Notice: iconv() [function.iconv]: Detected an incomplete multibyte character in input string in D:\wamp\www\ajax\js_php.php on line 7
{"name":"\u7490\u70ac\u6e5e\u9498","age":19,"sex":"\u9422","add":"\u6d93\u9365\u754c\u7176\u7039\u8dfa\u7c1e"}

希望大家帮忙解决一下问题,谢谢!
...全文
1347 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
a7758521haha 2011-05-11
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 kyzy_yy_pm 的回复:]

引用 3 楼 snmr_com 的回复:

那是因为你的php文件本身是utf-8编码的

+
[/Quote]
的确,问题解决了,感谢您的帮助!
a7758521haha 2011-05-11
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 snmr_com 的回复:]

那是因为你的php文件本身是utf-8编码的

你把它转为ansi这个问题就不存在
[/Quote]
的确,问题解决了,感谢您的帮助!
kyzy_yy_pm 2011-05-11
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 snmr_com 的回复:]

那是因为你的php文件本身是utf-8编码的
[/Quote]
+
ImN1 2011-05-11
  • 打赏
  • 举报
回复
那是因为你的php文件本身是utf-8编码的

你把它转为ansi这个问题就不存在
a7758521haha 2011-05-11
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 chlinux 的回复:]

我以前也是经常用这个函数的,问题多多,后来我放弃使用这个函数了,用这个函数吧,会让你很快乐,只是需要编译时加一个参数--enable-mbstring

string mb_convert_encoding ( string $str , string $to_encoding [, mixed $from_encoding ] )
[/Quote]
多谢咯,编译时加参数,你在linux下写php?
chlinux 2011-05-11
  • 打赏
  • 举报
回复
我以前也是经常用这个函数的,问题多多,后来我放弃使用这个函数了,用这个函数吧,会让你很快乐,只是需要编译时加一个参数--enable-mbstring

string mb_convert_encoding ( string $str , string $to_encoding [, mixed $from_encoding ] )


21,887

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧