您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

使用json_encode获取中文unicode的问题

2024/11/27 8:25:20发布12次查看
简单的数据库查询程序,数据库表里的中文保存的是中文unicode编码,例如中国在库里显示的是\u3537\u3456这样,
接收输入的中文是utf-8, 使用json_encode的自动中文转码功能可以获得unicode,可是问题来了,如果从转码后的字符串里获取
unicode呢,请大家帮忙给点思路啊?
例子代码如下
$str_input = go南京trip; //待查询的字符串
$str_input = json_encode($str_input);
$str_query = go\u3537\3642trip;目标字符串
如何从$str_input获取$str_query呢?
回复讨论(解决方案) 什么意思?要把 go\u3537\3642trip 变为 go南京trip ?
http://www.welefen.com/php-unicode-to-utf8.html
,看来我没表达清楚,
我需要的是go\u3537\3642trip, 即一旦有中文,就将它转化为其对应unicode的字符串,其他字符不变
你是没有说清楚!
1、\u3537\u3456 怎么会是  中国 呢?
你是怎么放进去的?请说一下
2、 $str_input = go南京trip; //一定要是 utf-8 的$str_input = iconv('gbk', 'utf-8', $str_input); //不然要转化成 utf-8 的echo json_encode($str_input);//得到 go\u5357\u4eactrip$str_query = trim(json_encode($str_input), ''); //所以这样就得到了
呵呵,unicode代码是瞎编的,抱歉,楼上这位兄弟跟我目前的做法是一样的,但是此时
$str_query是json字符串,{0:go\u5357\u4eac\u5730\u94c1trip}, 我只想要go\u5357\u4eac\u5730\u94c1trip。
用json_decode也不行,这时候应该怎么办呢,只能去字符串比较剥出来么?
那你的 $str_input 是数组,不是字符串
你取出值来不就行了?
$str_input = current($str_input);
$str_query = trim(json_encode($str_input), '');
$str_input = go南京trip;
$str_query = trim(json_encode($str_input), '');
echo $str_query;
//得到{0:go\u5357\u4eac\u5730\u94c1trip}
怎么才能从json结构里{0:go\u5357\u4eac\u5730\u94c1trip}获得“go\u5357\u4eac\u5730\u94c1trip”呢
你为啥这样保存呢?db以utf-8编码不就ok了?
$str_input = go南京trip;$str_query = trim(json_encode($str_input), ''); echo $str_query;

得到的是 go\u5357\u4eactrip
你为啥这样保存呢?db以utf-8编码不就ok了?
数据库是不能更改的,表已经存在了,中文数据是以unicode保存的
$str_input = go南京trip;$str_query = trim(json_encode($str_input), ''); echo $str_query;

得到的是 go\u5357\u4eactrip
如果我直接echo,浏览器显示是空,直接放到sql句子里面发现是带{ }的json数据格式
贴出来看看!
chrome里面输出  unicode: 
终于搞定了,多谢xuzuning
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product