2013-08-16 29 views
5

Đây là chức năng của tôi, tôi đang sử dụng lua-cjson mà nói nó hỗ trợ đầy đủ UTF-8Lua - In ấn (♡) nhân vật sau khi phân tích cú pháp của JSON

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 

Khi người sử dụng có một số ký tự đặc biệt như ♡ Lúa mã của tôi trả về personaname như

tam ♡ 

thay vì

tam ♡ 

làm thế nào tôi có thể RETU có một cách chính xác rn kết quả chính xác?

+0

Chính xác bạn có ý gì khi trả lại? – akluth

+0

Trả lại tam ♡ thay vì tam â –

Trả lời

6

Đó là sự cố mã hóa. Bất cứ điều gì bạn xuất ra kết quả là không mong đợi ký tự mã hóa UTF-8 bạn đang gửi nó và vì vậy nó hiển thị nó tốt nhất có thể.

Nếu bạn kiểm soát khía cạnh hiển thị, bạn cần xem xét việc thay đổi mã hóa mong muốn (hoặc xem cách bạn có thể chuyển đổi UTF-8 thành bất kỳ mã hóa nào).

Nếu bạn không kiểm soát màn hình thì bạn không thể làm gì khác ngoài việc thông báo cho người dùng rằng họ cần phải có mặt chính xác về cấu hình.

+0

Cảm ơn bạn đã khiến tôi nhận ra rằng tôi nên thêm kiểu nội dung charset = utf-8 vào tiêu đề. –

Các vấn đề liên quan