My actual Json data: Raw Data : {"title": "English:'Hello' UTF-8:'??'"}
Return from Web Connection. V7.26
Follow the Documentation, had enabled response to encoding it utf-8.
FUNCTION OnProcessInit
Response.Encoding = "UTF8"
Request.lUtf8Encoding = .T.
Web Connection server side code :
FUNCTION testUTF8
Sys(3101,65001) &&UTF8
p_filename = "sample.json"
lcUTF8= filetostr(p_filename )
loSer = CREATEOBJECT("wwJsonSerializer")
loResult = loSer.DeserializeJson(lcUTF8)
RELEASE loSer
RETURN loResult
Could anyone figure out, which parts I did mistake?
Refer Doc : https://www.west-wind.com/presentations/foxunicode/foxunicode.html
What is the actual problem and the final output?
I think the problem isn't the Web Connection application - it's doing the right thing and returning UTF-8 it looks like (return some HTML and display in the browser with that same string) - I'm not sure what the characters should look like UTF-8 encoded.
Before you pass to the JSON deserialization you need to decode the UTF-8 encoding using STRCONV(lcJson, 11)
. I assume you are using a Chinese code page? Otherwise you can't decode Chinese characters into FoxPro and only get ??
.
+++ Rick ---
Yes, is Chinese Code Page 936, in Foxpro. After UTF-8 encoding using STRCONV(lcJson, 11), Result :
As I understand, should not using STRCONV(lcJson, 11) , because should pass UTF-8 coding into loSer.DeserializeJson().
I used STRCONV(lcJson, 11,2052) can successfully convert UTF-8 to DBCS, and appear DBCS correctly by using Foxpro TextBox. I had try google many ways, still can't deserialize correctly, doesn't know which parts go wrong.
My POS program retrieve and save UTF-8 data into Firebase Database thru ODBC correctly. I used https://www.hexagora.com/en_home.asp TextBox to edit UTF-8 Coding data field correctly.
https://en.wikipedia.org/wiki/Code_page_936_(Microsoft_Windows)
I'm not sure what you mean.
The server is doing the right thing - it's returning the UTF-8 string.
You need to apply the STRCONV()
on the client after you've retrieved the UTF-8 encoded content from the Web Server.
+++ Rick ---