How to json_encode array with french accents?(如何使用法语口音对数组进行 json_encode?)
问题描述
我有一个带有法国口音的数组项([WIPDescription] => Recette Soupe à lOignon Sans Boeuf US).正在从数据库 (mysql) 中正确提取数据.
I have an array item with a French accent ([WIPDescription] => Recette Soupe à lOignon Sans Boeuf US). The data is being properly pulled from the database (mysql).
但是,当我尝试使用 json_encode 中内置的 php 将其编码为 json 时,它会生成一个 null json 值(OS X 服务器:php 5.3.4,启用 json 1.2.1).
However, when I try to encode this as json using the php built in json_encode it produces a null json value (OS X server: php 5.3.4, json 1.2.1 enabled).
在 Linux 服务器中,描述在第一个重音字符之后被截断.
In a Linux server, the description is cut off after the first accent character.
我尝试了所有 json_encode 选项都没有成功.有什么建议吗?
I tried all the json_encode options with no success. Any suggestions?
谢谢.
推荐答案
json_encode
只想要utf-8
.根据您的字符集,您可以使用 iconv
或 utf8_encode
before 在你的变量上调用 json_encode
.可能使用 array_walk_recursive
.
json_encode
only wants utf-8
. Depending on your character set, you can use iconv
or utf8_encode
before calling json_encode
on your variable. Probably with array_walk_recursive
.
根据要求,一种未完成的改变数组的方法,假设(1)它不包含对象,(2)数组键在ascii/下界,所以可以保持原样:
As requested, an unfinished way to alter an array, with the assumptions that (1) it doesn't contain objects, and (2) the array keys are in ascii / lower bounds, so can be left as is:
$current_charset = 'ISO-8859-15';//or what it is now
array_walk_recursive($array,function(&$value) use ($current_charset){
$value = iconv('UTF-8//TRANSLIT',$current_charset,$value);
});
这篇关于如何使用法语口音对数组进行 json_encode?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:如何使用法语口音对数组进行 json_encode?


- Laravel 仓库 2022-01-01
- PHP Count 布尔数组中真值的数量 2021-01-01
- 从 PHP 中的输入表单获取日期 2022-01-01
- Oracle 即时客户端 DYLD_LIBRARY_PATH 错误 2022-01-01
- 没有作曲家的 PSR4 自动加载 2022-01-01
- 带有通配符的 Laravel 验证器 2021-01-01
- 如何定位 php.ini 文件 (xampp) 2022-01-01
- SoapClient 设置自定义 HTTP Header 2021-01-01
- 正确分离 PHP 中的逻辑/样式 2021-01-01
- Mod使用GET变量将子域重写为PHP 2021-01-01