http://blog.csdn.net/qmhball/article/details/45690017

最近在开发微信自定义菜单。
接口比较简单,就是按微信要求的格式post一段json数据过去就成。
但我的菜单中里有中文,json_encode后出现了类似"\u5c0f\u8c61" 的unicode字符。
请求发出后被微信接口告知:
  1. {"errcode":40033,"errmsg":"invalid charset. please check your request, if include \\uxxxx will create fail!"}

不支持unicode字符!

那么如何才能使json_encode不转义汉字呢?
方法1
如果你的php版本是5.4+, 那么恭喜你,一个参数JSON_UNESCAPED_UNICODE就能搞定。
  1. <?php
  2. $data = array(
  3. "name"=>"羊羊羊",
  4. "type"=>"view",
  5. "url"=>"http://xuan9806.com/"
  6. );
  7. echo json_encode($data, JSON_UNESCAPED_UNICODE), "\n";

得到结果

  1. {"name":"羊羊羊","type":"view","url":"http:\/\/xuan9806.com\/"}
方法2
如果不幸由于种种原因你的php无法升到高版本,那么可以这么做:
把字段中的中文urlencode, 在json_encode后将得到的字串整体urldecode即可
  1. <?php
  2. $data = array(
  3. "name"=>urlencode("羊羊羊"),
  4. "type"=>"view",
  5. "url"=>"http://xuan9806.com/"
  6. );
  7. $result = json_encode($data);
  8. $result = urldecode($result);
  9. echo $result, "\n";

同样得到法1中的结果。

 

微信自定义菜单说php json_encode不转义中文汉字的方法的更多相关文章

  1. PHP JSON_ENCODE 不转义中文汉字的方法

    ios程序中不识别读取到的JSON数据中 \u开头的数据. PHP 生成JSON的时候,必须将汉字不转义为 \u开头的UNICODE数据. 网上非常多,可是事实上都是错误的,正确的方法是在json_e ...

  2. 黄聪:PHP JSON_ENCODE 不转义中文汉字的方法

    ios程序中不识别读取到的JSON数据中 \u开头的数据. PHP 生成JSON的时候,必须将汉字不转义为 \u开头的UNICODE数据. 网上很多,但是其实都是错误的,正确的方法是在json_enc ...

  3. 转载:PHP JSON_ENCODE 不编码中文汉字的方法

    1.PHP版本5.4(包含)+ json_encode($data, JSON_UNESCAPED_UNICODE); //必须PHP5.4+ 2.PHP版本5.4- function encode_ ...

  4. Magcodes.WeiChat——自定义CustomCreationConverter之实现微信自定义菜单的序列化

    微信自定义菜单接口是一个比较麻烦的接口,往往开发的小伙伴们看到下面的这段返回JSON,整个人就会不好了:   {"menu":{"button":[{" ...

  5. Magicodes.WeiChat——自定义knockoutjs template、component实现微信自定义菜单

    本人一向比较喜欢折腾,玩了这么久的knockoutjs,总觉得不够劲,于是又开始准备折腾自己了. 最近在完善Magicodes.WeiChat微信开发框架时,发现之前做的自定义菜单这块太不给力了,而各 ...

  6. 微信自定义菜单url默认80端口问题解决

    微信自定义菜单url默认80端口的,但是有些服务器上可能配置了多个tomcat.或者是刚好你服务器上80端口被占用了.在这样的情况下,我们可以通过如下方式解决: 首先安装apache,关于apache ...

  7. java 微信自定义菜单 java微信接口开发 公众平台 SSM redis shiro 多数据源

    A 调用摄像头拍照,自定义裁剪编辑头像,头像图片色度调节B 集成代码生成器 [正反双向](单表.主表.明细表.树形表,快速开发利器)+快速表单构建器 freemaker模版技术 ,0个代码不用写,生成 ...

  8. java SSM 框架 微信自定义菜单 快递接口 SpringMVC mybatis redis shiro ehcache websocket

    A 调用摄像头拍照,自定义裁剪编辑头像,头像图片色度调节B 集成代码生成器 [正反双向](单表.主表.明细表.树形表,快速开发利器)+快速表单构建器 freemaker模版技术 ,0个代码不用写,生成 ...

  9. 我的第一个npm包:wechat-menu-editor 基于Vue的微信自定义菜单编辑器

    wechat-menu-editor 微信自定义菜单编辑器 前言 在做微信公众号相关开发时,基本上会去开发的功能就是微信自定义菜单设置的功能,本着不重复造轮子的原则,于是基于Vue封装的一个微信自定义 ...

随机推荐

  1. JAVA 正则表达式、汉字正则、 java正则代码

    转自于:http://blog.csdn.net/q326527970/article/details/7513974 (一)字母.数字.下划线.汉字正则表达式 1. 只有字母.数字和下划线且不能以下 ...

  2. VMware安装、配置CentOS

    出处:http://www.cnblogs.com/jlily/ 1. 准备CentOS安装镜像文件 官网下载地址:http://www.centos.org/download/ 官方有三个版本:DV ...

  3. Python实现的粒子群优化算法

    01.from numpy import array 02.from random import random 03.from math import sin, sqrt 04. 05.iter_ma ...

  4. 史上最全JS表单验证封装类

    转自:http://www.cnblogs.com/linjiqin/p/3429919.html /************************************************* ...

  5. Oracle查询表里的重复数据方法:

    一.背景 一张person表,有id和name的两个字段,id是唯一的不允许重复,id相同则认为是重复的记录. 二.解决 select id from group by id having count ...

  6. Selenium介绍

    基于selenium的自动化测试,华为已经做了两代了,目前是做到SmartGUI2.0,基于他们自己的AutoSpace平台.不过目前支持的貌似只有IE和火狐(火狐3.6).控件录制支持ID,Name ...

  7. Xamarin Anroid开发教程之下载安装Xamarin

    Xamarin Anroid开发教程之下载安装Xamarin Xamarin在过去安装时都会检查系统中是否安装了前面所提供的内容.而后来,Xamarin安装时只提供安装步骤,其它内容都需要读者自己下载 ...

  8. 简单几何(向量旋转+凸包+多边形面积) UVA 10652 Board Wrapping

    题目传送门 题意:告诉若干个矩形的信息,问他们在凸多边形中所占的面积比例 分析:训练指南P272,矩形面积长*宽,只要计算出所有的点,用凸包后再求多边形面积.已知矩形的中心,向量在原点参考点再旋转,角 ...

  9. .net如何把导数据入到Excel

    using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.UI ...

  10. lua if

    function fact(n) then else ) end end print("输入一个数") a=io.read("*number") print(f ...