VFP9.0 UNICODE编码转换出错,求助各位大大

qq_36706729 2017-08-30 01:55:42
从某网站采集到数据如下:
[{"MatchID":"1438052","EventType":"8","HomeOrAway":"1","OccurTime":"26","PlayerID":"125876","PlayerName":"\u827e\u6770"},{"MatchID":"1438052","EventType":"1","HomeOrAway":"2","OccurTime":"34","PlayerID":"27048","PlayerName":"\u8f9b\u514b\u83b1\u5c14 (\u52a9\u653b:\u798f\u96f7\u65af\u7279)"},{"MatchID":"1438052","EventType":"1","HomeOrAway":"1","OccurTime":"48","PlayerID":"101064","PlayerName":"\u6885\u65af\u9ad8\u592b (\u52a9\u653b:\u798f\u96f7\u65af\u7279)"},{"MatchID":"1438052","EventType":"1","HomeOrAway":"1","OccurTime":"49","PlayerID":"112707","PlayerName":"P.\u7279\u6b66\u9a6c\u897f (\u52a9\u653b:\u68ee\u9ad8)"},{"MatchID":"1438052","EventType":"1","HomeOrAway":"1","OccurTime":"69","PlayerID":"112707","PlayerName":"P.\u7279\u6b66\u9a6c\u897f (\u52a9\u653b:\u68ee\u9ad8)"},{"MatchID":"1438052","EventType":"3","HomeOrAway":"1","OccurTime":"70","PlayerID":"89241","PlayerName":"\u73c0\u65af\u5c3c\u53ef\u5a01"},{"MatchID":"1438052","EventType":"1","HomeOrAway":"2","OccurTime":"80","PlayerID":"131694","PlayerName":"\u5965\u5229\u7ef4\u5c14 (\u52a9\u653b:\u963f\u59c6\u65af\u7279\u6717)"},{"MatchID":"1438052","EventType":"3","HomeOrAway":"1","OccurTime":"82","PlayerID":"78524","PlayerName":"\u68ee\u9ad8"},{"MatchID":"1438052","EventType":"1","HomeOrAway":"2","OccurTime":"90","PlayerID":"36593","PlayerName":"L.\u683c\u96f7\u798f\u897f\u65af (\u52a9\u653b:N.\u6bd4\u987f)"},{"MatchID":"1438052","EventType":"3","HomeOrAway":"1","OccurTime":"90","PlayerID":"105004","PlayerName":"S.\u52a0\u8d3a\u534e\u514b"}]
其中有些数据为UNIcode编码,使用strconv()函数转换出来是乱码,求助各位老大!
代码如下
a1=STRCONV(FILETOSTR("AAAA.UNI"),6) &&原数据保存在AAAA.UNI文件里
=strtofile(b1,"AAAA.txt") &&AAAA.TXT 保存转换后的数据
执行后用记事本打开AAAA.TXT是乱码
...全文
661 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_36706729 2017-08-31
  • 打赏
  • 举报
回复
感谢版主指点,已经搞定了!
都市夜猫 2017-08-30
  • 打赏
  • 举报
回复
要下班了,给你写一小段代码,自己去修改;让浏览器去解释编码,大概是这个思路 表单上加一按钮, Click 中帖下列代码:
Local cc

Text to cc Noshow
... 帖你那一段长长的 json 字符串
EndText

Text to cc Noshow Textmerge
<Script>
var cc = '<<cc>>';
document.title = cc;
</Script>
EndText

Thisform.AddObject('ie','olecontrol','Shell.Explorer')
With Thisform.ie as Shell.Explorer
	.Navigate('about:blank')
	.Document.write(cc)
	cc = .Document.Title
EndWith
Thisform.RemoveObject('ie')

MessageBox(cc)    &&  看看浏览器解码后的结果
都市夜猫 2017-08-30
  • 打赏
  • 举报
回复
要自己去解释这些太麻烦,最好装入浏览器,让浏览器去翻译解释
都市夜猫 2017-08-30
  • 打赏
  • 举报
回复
unicode 编码本来就有两种方式,分别是低字节在前 和 高字节在前 \u 这种编码方式刚好和 vfp 相反 messagebox(strconv( 0h9b8f + 0h4b51 + 0hb183 + 0h145c, 6)) 才是你要的结果
qq_36706729 2017-08-30
  • 打赏
  • 举报
回复
WIN10系统,vfp9.0 比如字符串\u8f9b\u514b\u83b1\u5c14 ,使用网络上的UNICODE在线转换工具可以得到正确的转换结果是“辛克莱尔“ 但是在VFP9.0中却得不到正确的结果 代码如下 str1=strconv([\u8f9b\u514b\u83b1\u5c14],6) 显示str1得到一长串乱码

2,723

社区成员

发帖
与我相关
我的任务
社区描述
VFP,是Microsoft公司推出的数据库开发软件,用它来开发数据库,既简单又方便。
社区管理员
  • VFP社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧