【已解决】ControlGetText读取SciTE得到乱码,怎么转换为正常数据
本帖最后由 zldfsz 于 2012-3-14 15:12 编辑我用ControlGetText读取SciTE编辑框里的内容,读出来是乱码,如图
请问如何转换为正常数据
Local $var = ControlGetText("", "", "Scintilla1")
MsgBox(32,"返回值",$var)
问题已解决,请看 12楼http://www.autoitx.com/images/common/back.gif
MsgBox(0,0,BinaryToString(StringToBinary(ControlGetText("", "", "Scintilla1"), 2), 1))感谢楼下各位解答 本帖最后由 my788522 于 2012-3-14 13:38 编辑
Local $var = ControlGetText("", "", "Scintilla1")
$bin=StringToBinary ($var,2)
MsgBox(32,$bin,BYTEtoHEX($bin))
Func BYTEtoHEX($str)
$str = StringReplace($str, "0x", "")
$fanhui = ""
For $i = 1 To StringLen($str) Step 4
$strzi = "0x" & StringMid($str, $i, 4)
$code = BinaryToString($strzi)
$fanhui = $fanhui & $code
Next
Return $fanhui
EndFunc ;==>BYTEtoHEX 回复 2# my788522
非常感谢,佩服,怎么知道这样做呢 这个直接读出的是UTF小编码 要转换回去
具体是在scite的配置文件中有设置编码的地方
原版的scite可直接读出数据 而中文化的是改过编码的 本帖最后由 zldfsz 于 2012-3-14 13:51 编辑
回复 4# my788522
问题解决了,谢谢 Local $var = ControlGetText("", "", "Scintilla1")
$bin=StringToBinary ($var,2) ...
my788522 发表于 2012-3-14 13:36 http://www.autoitx.com/images/common/back.gif
学习了~ 不过测试某些中文仍为乱码 学习了~ 不过测试某些中文仍为乱码
afan 发表于 2012-3-14 14:05 http://www.autoitx.com/images/common/back.gif
回复 4# my788522
的确如此 对了 中文也得转换一下..... 本帖最后由 Duvet 于 2012-3-14 14:20 编辑
實際上就是 UTF-16(LE) 轉 UTF-8,別把問題想難了
MsgBox(0, "Result", BinaryToString(StringToBinary(ControlGetText("", "", "Scintilla1"), 2), 4))
楼上正解 我整复杂了 对了 中文也得转换一下.....
my788522 发表于 2012-3-14 14:13 http://www.autoitx.com/images/common/back.gif
可是为什么有些不转也正常呢
實際上就是 UTF-16(LE) 轉 UTF-8,別把問題想難了
Duvet 发表于 2012-3-14 14:19 http://www.autoitx.com/images/common/back.gif
可是中文都没显示 回复 12# zldfsz
跟文件編碼有關係,如果是ANSI編碼,用下面這一行便可解決
MsgBox(0,0,BinaryToString(StringToBinary(ControlGetText("", "", "Scintilla1"), 2), 1))
谢谢,完美解决了,今天不能再评分了,明天给你评上,非常感谢 2楼的代码更让人容易理解原理。
页:
[1]
2