使用php或javascript转义json数组中的Utf-8
Escape Utf-8 inside of json array using php or javascript
我创建了一个php
脚本,在postgres数据库上执行select
语句。我将结果转换为json字符串,并使用<? echo $a; ?>
行将其传递给javascript
变量。
问题我无法解决的是,我的json
从php
包含波兰字符(utf-8
)编码,当javascript
得到这个值我得到Uncaught SyntaxError: Unexpected identifier
,它是完全好的,因为字符串没有转义。
我是这样做的:
php
生成json:
<? $result_json = json_encode($result); ?>
以及如何将其传递给js:
options_json='<? echo $result_json; ?>';
当我在浏览器中调试我的options_json
看起来像:
options_json='[{"code":"za'u0105e ba'u0144stre.".....
我试过escape()
utf8_encode()
和addslashes()
。首先没有结果,addslashes()
函数删除了错误,但它破坏了json
结构,因此我无法将其还原。
简单地尝试返回json编码的值,如以下示例:
$arr_rslt=array();
$query=" Select col1,col2,col3 from tbl";
$result = mysql_query($query);
while( $row = mysql_fetch_array( $result ) )
{
$arr_rslt[] = $row;
}
echo json_encode($arr_rslt);
如果您使用$。Ajax或$。Post然后在它们的回调中操作这个。也可以在$.ajax.
中使用它。contentType: "application/json; charset=UTF-8",
这可能对您有用,我正在使用下面的函数来编码那些具有阿拉伯文本的数组。试试下面的函数。我不是在处理斜杠
public function utf8_encode_all($dat) // -- It returns $dat encoded to UTF8
{
if (is_string($dat)) return utf8_encode($dat);
if (!is_array($dat)) return $dat;
$ret = array();
foreach($dat as $i=>$d) $ret[$i] = $this->utf8_encode_all($d);
return $ret;
}
相关文章:
- 如何在映射数组中添加换行符
- javascript结合了数组和字典
- 需要帮助设置json数组
- 不能从angular2中的子组件指定父组件中的数组
- 使用JS将数组转换为json对象
- 数组在递归方法中设置为null
- knockoutjs可观察数组
- Javascript-如何读取json文件中的列并将其保存在Javascript数组中
- 将数组从PHP传递到Javascript
- JavaScript数组排序(函数)用于对表行进行排序,而不是排序
- 在函数中添加数组元素的数值
- 无法通过数组映射绑定
- javascript中的数组出错
- 如何使用 node.js 比较两个 json 数组
- Javascript(Angular)从一个对象数组到第二个数组查找值
- 根据id将json数组组合为一个json数组
- 如何通过数组更新角度子范围
- 有没有一种方法可以添加相同的项目val=“0”;4〃;到JavaScript中数组的每个对象
- 在Javascript中转换对象数组
- 使用php或javascript转义json数组中的Utf-8