Lua - 解析 JSON 后打印 ( ♡ ) 字符

这是我的函数,我使用lua-cjson,它可以完全支持UTF-8。

function getPersonaName(sid64)
local cjson = require "cjson"
local r = http.request("http://api.steampowered.com/ISteamUser/GetPlayerSummaries/v0002/?key=###&steamids=" .. sid64)
results = cjson.decode(r)
personaname = results.response.players[1].personaname
return personaname

当用户有一些像♡这样的特殊字符时,我的Lua代码返回的personaname是

tam ♡

而不是

tam

如何正确返回确切的结果?

点赞
用户258523
用户258523

这是一个编码问题。无论您将输出结果发送到何处,都没有期望接收到您发送的 UTF-8 编码字符,因此它尽可能地显示它。

如果您控制显示方面的事情,则需要查看更改其所需的编码(或查看如何将 UTF-8 转换为它所期望的任何编码)。

如果您无法控制显示,则除了告知用户他们需要正确配置自己的一面外,您没有太多可以做的。

2013-08-16 16:17:13