utf8编码的字符串如何转为ansi编码的字符串【已解决】
本帖最后由 fenhanxue 于 2021-8-1 22:39 编辑如图,有一段str,是由dllcall返回的,是utf8格式的,需要转ansi格式才不会是乱码
请教有什么现成的UDF能转么,
我试过 BinaryToString(StringToBinary($str,1),4)
但是转换后的内容还是有部分乱码
我这里用来测试的$str的原文是 “测试中”
1和4换一下试试 haijie1223 发表于 2021-8-1 21:46
1和4换一下试试
1和4对换也不行
这个转码,用易语言的精易模块中的 编码_Utf8到Ansi 命令,可以顺利转码
而且感觉 dll返回的原始乱码,au3和易语言返回的好像还不一样:
au3返回的是:娴嬭瘯涓?
易语言返回的是:娴嬭瘯涓?? 我觉得你把文件打包一下发上来,会更快一些。
haijie1223 发表于 2021-8-1 21:58
我觉得你把文件打包一下发上来,会更快一些。
BinaryToString(StringToBinary($Str, 1), 4)
返回的不就是正确结果么 #PRE_UseX64=n
Local $hDLL = DllOpen("PsyQrDcd.dll")
Local $aRet = DllCall($hDLL, "int", "DecodePictureFile", "str", @ScriptDir & '\test.jpg')
Local $tData = DllStructCreate('byte')
Local $buffer = DllStructCreate('ptr')
DllStructSetData($buffer, 1, DllStructGetPtr($tData))
Local $aStr = DllCall($hDLL, "int", "GetDecodeData", "int", $aRet - 1, 'ptr', DllStructGetPtr($buffer))
MsgBox(0,0,BinaryToString(DllStructGetData($tData, 1), 4))
DllClose($hDLL)
#PRE_UseX64=nLocal $hDLL = DllOpen("PsyQrDcd.dll")
Local $aRet = DllCall($hDLL, "int", "DecodePictureFile", "str", @ScriptDir & '\test.jpg')
Local $aStr = DllCall($hDLL, "ptr", "GetDecodeDataString", "int", $aRet - 1)
Local $tData = DllStructCreate('byte',$aStr)
MsgBox(0,0,BinaryToString(DllStructGetData($tData, 1), 4))
DllClose($hDLL)
haijie1223 发表于 2021-8-1 22:36
byte中的1024是不是代表允许返回的最大字节数是1024?这个数字是不是也可以改成别的数字的?
DllCall($hDLL, "int", "GetDecodeData", "int", $aRet - 1, 'ptr', DllStructGetPtr($buffer))
中最后加的 'ptr', DllStructGetPtr($buffer) 这个用法哪里有具体的文字说明么,帮助文件里好像没看到这个写法,感觉换个dll可能又不会了 fenhanxue 发表于 2021-8-1 22:56
byte中的1024是不是代表允许返回的最大字节数是1024?这个数字是不是也可以改成别的数字的?
...
不用换,够用了。
用9楼的代码吧,写法相对简单。 haijie1223 发表于 2021-8-1 22:57
不用换,够用了。
用9楼的代码吧,写法相对简单。
太好了,解决我的问题。
haijie1223 发表于 2021-8-1 22:56
请教,要读取图片文字如何修改? 本帖最后由 yohoboy 于 2021-8-2 11:17 编辑
chzj589 发表于 2021-8-2 10:02
请教,要读取图片文字如何修改?
版上有QR_CODE範例,先行產生QR_CODE圖片後再用這範例讀取,或是直接由線上製作,然後用
PRT_SCR鍵,再開啟畫圖程式,黏貼後再剪切QR_CODE圖形,另存新檔,如範例的 TEST.JPG 即可。
yohoboy 发表于 2021-8-2 11:14
版上有QR_CODE範例,先行產生QR_CODE圖片後再用這範例讀取,或是直接由線上製作,然後用
PRT_SCR鍵,再 ...
我的意思是读取图片文字,不是读取二维码图片文字。生成二维码图片我知道。