注册 登录
编程论坛 VFP论坛

请教大侠FILETOSTR()问题

lgp721221 发布于 2021-11-02 13:24, 2015 次点击
一个Text文件,VFP9.0SP2通过
lcText=Filetostr("AA.txt")
? lcText
1、查看lcText,一大堆繁体字,这是什么编码?有没什么可以转换的?
2、找度娘查了一下别人用这种方式识分编码:
   lcTextType=Createbinary(Substr(lcText,1,2))
   Do Case
      Case lcTextType=0hEFBB    &&VFP6.0不支持此种方式,此实列是在VFP9.0+SP2下测试的。
       lcCode='UTF-8'
      Case lcTextType=0hFFFE
       lcCode='Unicode'
      Case lcTextType=0hFEFF
           lcCode='Unicode big endian'
      Otherwise
       lcCode='ANSI'
    Endcase
        ? '此文本的编码格式为:',lcCode
经过执行是ANSI?
跟踪中文字lcTextType='0hE688',跟踪英文字lcTextType='0h3C21'
只有本站会员才能查看附件,请 登录

3、若我从里面截取出几个字符串,怎么转换为我们认识的中文?如:'我的IP地址',变成'鎴戠殑ip鍦板潃'
若是'绂忓缓鐪佺  宸炲競鐢典俊’是什么呢?
请大侠帮忙?不胜感激!
8 回复
#2
吹水佬2021-11-02 13:57
可以的话提供文件测试
#3
laowan0012021-11-02 14:07
内种东西通常是UTF-8的

我的做法通常是用STRCONV( ) 逐个参数去试,总共也就十几个

[此贴子已经被作者于2021-11-2 14:39编辑过]

#4
foxfans2021-11-02 14:48
strconv('你这些代码',11)
要整个页面进行转换,不然可能出现截断,乱码

[此贴子已经被作者于2021-11-2 14:49编辑过]

#5
lgp7212212021-11-02 22:53
回复 2楼 吹水佬
帮我试试


[此贴子已经被作者于2021-11-4 21:59编辑过]

#6
lgp7212212021-11-02 23:15
以下是引用laowan001在2021-11-2 14:07:21的发言:

内种东西通常是UTF-8的

我的做法通常是用STRCONV( ) 逐个参数去试,总共也就十几个

我也查了:按别人的方式测试了,在第2点也说明清楚了,不是UTF-8,但还是非常感谢你的回复!
#7
吹水佬2021-11-03 21:33
回复 5楼 lgp721221
用URLDownloadToFile下载的是UTF-8编码的HTML文件,用STRCONV()转换:lcText = STRCONV(lcText,11)
也可以用WinHttp.WinHttpRequest获取
程序代码:
wh = CREATEOBJECT("WinHttp.WinHttpRequest.5.1")
wh.Open("GET", "http://www.baidu.com/s?wd=本机IP", 0)
wh.Send()
STRTOFILE(wh.ResponseText,"IP.txt")
MODIFY FILE IP.txt

#8
Bc_Newboy2021-11-03 21:50
不明觉厉
#9
lgp7212212021-11-04 22:37
回复 7楼 吹水佬
高手呀
1