【已解决】如何识别文本文件格式?
本帖最后由 chishingchan 于 2022-9-1 20:33 编辑Func _FileEncode($sFilePath)
Local $ADODB_Stream = ObjCreate("ADODB.Stream")
$ADODB_Stream.Type = 1
$ADODB_Stream.Open
$ADODB_Stream.LoadFromFile($sFilePath)
$ADODB_Stream.Position = 0x0
Local $File_Header = $ADODB_Stream.Read(2)
Switch $File_Header
Case 0xFEFF
Return 32
;Return "Unicode"
Case 0xBBEF
Return 128
;Return "UTF-8 + BOM"
Case Else
Return 512
;Return "ANSI"
EndSwitch
EndFunc
以文件头方式识别文件遇到了一个问题!
UTF-8 与 ANSI 的文件头是一样的!文件内容不同在于 亚洲文字编码 的不一样。
请问如何识别文本文件的格式?即如何完善这个函数?谢谢!
FileGetEncoding 是要这个不 绿色风 发表于 2022-9-1 19:26
FileGetEncoding 是要这个不
其实这样就可以:
Local $hFileOpen = FileOpen($sFilePath)
原来我画蛇添足!
Local $hFileOpen = FileOpen($sFilePath, FileGetEncoding($sFilePath)) chishingchan 发表于 2022-9-1 20:32
其实这样就可以:
Local $hFileOpen = FileOpen($sFilePath)
AU3读取文本这一点很强啊,其他的语言如C#似乎就无法做到自动判断编码打开。 本帖最后由 afan 于 2022-9-2 10:37 编辑
chishingchan 发表于 2022-9-1 20:32
其实这样就可以:
Local $hFileOpen = FileOpen($sFilePath)
如果是默认打开读取,这些都是多余的。直接读
FileRead($sFilePath)
除非需要二进制数据,或逐行读取,或自动判断的格式不对,才需要 FileOpen
值得学习,我要好好看看学习学习
页:
[1]