相关疑难解决方法(0)

JSON和转义字符

我有一个字符串,它在Javascript中被序列化为JSON,然后反序列化为Java.

看起来如果字符串包含度数符号,那么我就会遇到问题.

我可以帮助找出应该责怪的人:

  • 它是Spidermonkey 1.8的实现吗?(这里面有一个JSON实现)
  • Google gson吗?
  • 我不做正确的事吗?

这是JSDB中发生的事情:

js>s='15\u00f8C'
15°C
js>JSON.stringify(s)
"15°C"
Run Code Online (Sandbox Code Playgroud)

我希望"15\u00f8C'这让我相信Spidermonkey的JSON实现没有做正确的事情...除了JSON主页的语法描述(是规范吗?)说char可以是

any-Unicode-character- except - " - 或 - \ - or- control-character"

所以也许它按原样传递字符串而不将其编码为\ u00f8 ...在这种情况下我会认为问题出在gson库中.

有人可以帮忙吗?

我想我的解决方法是使用不同的JSON库,或者在调用后自己手动转义字符串JSON.stringify()- 但如果这是一个错误,那么我想提交错误报告.

unicode json

52
推荐指数
3
解决办法
12万
查看次数

PHP json_encode json_decode UTF-8

如何将带有国际字符的json编码字符串保存到数据库,然后在浏览器中解析解码后的字符串?

<?php           
    $string = "très agréable";  
    // to the database 
    $j_encoded = json_encode(utf8_encode($string)); 
    // get from Database 
    $j_decoded = json_decode($j_encoded); 
?>    
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
    <?= $j_decoded ?>
</html> 
Run Code Online (Sandbox Code Playgroud)

php json utf-8

24
推荐指数
6
解决办法
13万
查看次数

使用PHP从JSON字符串转换Unicode

我一直在阅读一些解决方案,但尚未设法获得任何工作.

我有一个JSON字符串,我从API调用中读取它,它包含Unicode字符 - \u00c2\u00a3例如是£符号.

我想用PHP将它们转换为£或者&pound;.

我正在调查问题并找到以下代码(使用我的英镑符号进行测试)但它似乎不起作用:

$title = preg_replace("/\\\\u([a-f0-9]{4})/e", "iconv('UCS-4LE','UTF-8',pack('V', hexdec('U$1')))", '\u00c2\u00a3');
Run Code Online (Sandbox Code Playgroud)

输出是£.

我是否认为这是UTF-16编码的?我如何将这些转换为HTML输出?

UPDATE

似乎来自API的JSON字符串有2或3个未转义的Unicode字符串,例如:

That\u00e2\u0080\u0099s (right single quotation)
\u00c2\u00a (pound symbol)
Run Code Online (Sandbox Code Playgroud)

php unicode encoding utf-8 character-encoding

6
推荐指数
1
解决办法
2万
查看次数

标签 统计

json ×2

php ×2

unicode ×2

utf-8 ×2

character-encoding ×1

encoding ×1