我已使用UltraEdit将.txt文件从ASCII转换为UTF-8。但是,我不确定如何在Windows环境中验证它是否为UTF-8格式。
谢谢!
答案 0 :(得分:21)
在记事本中打开该文件。点击“另存为...”。在“编码:”组合框中,您将看到当前的文件格式。
答案 1 :(得分:8)
Windows中的文本文件没有格式。有一个非官方的约定,如果文件以BOM codepoint in UTF-8 format开头,它是UTF-8,但该约定不是普遍支持的。这将是3字节序列"\xef\xbf\xbe"
,即Latin-1字符集中的￾
。
答案 2 :(得分:8)
使用Notepad ++打开文件并选中“编码”菜单,您可以检查当前的编码和/或转换为一组可用的编码。
答案 3 :(得分:7)
在十六进制编辑器中打开它,确保前三个字节是UTF8 BOM(EF BB BF
)
答案 4 :(得分:2)
如果您使用Windows 10并具有Windows子系统(适用于Linux的Windows子系统),则可以通过在外壳程序中键入“ file”来轻松实现。
例如:
$ file code.cpp
code.cpp: C source, UTF-8 Unicode (with BOM) text, with CRLF line terminators
答案 5 :(得分:0)
我有一个要检查的文件目录。我创建了一个Excel宏来确定ANSI与UTF-8。这对我有用。
Sub GetTextFileEncoding()
Dim sFile As String
Dim sPath As String
Dim sTextLine As String
Dim iRow As Integer
'Set Defaults and Initial Values
iRow = 1
sPath = "C:textfiles\"
sFile = Dir(sPath & "*.txt")
Do While Len(sFile) > 0
'Get FileType
'Debug.Print sFile & " - " & FileEncodeType(sPath & sFile)
'Show on Excel Worksheet
Cells(iRow, 1).Value = sFile
Cells(iRow, 2).Value = FileEncodeType(sPath & sFile)
'Get next file
sFile = Dir
'Increment Row
iRow = iRow + 1
Loop
End Sub
Function FileEncodeType(sFile As String) As String
Dim bEF As Boolean
Dim bBB As Boolean
Dim bBF As Boolean
bEF = False
bBB = False
bBF = False
Open sFile For Input As #1
If Not EOF(1) Then
'Read first line
Line Input #1, textline
'Debug.Print textline
For i = 1 To 3
'Debug.Print Asc(Mid(textline, i, 1)) & " - " & Mid(textline, i, 1)
Select Case i
Case 1
If Asc(Mid(textline, i, 1)) = 239 Then
bEF = True
End If
Case 2
If Asc(Mid(textline, i, 1)) = 187 Then
bBB = True
End If
Case 3
If Asc(Mid(textline, i, 1)) = 191 Then
bBF = True
End If
Case 4
End Select
Next
End If
Close #1
If bEF And bBB And bBF Then
FileEncodeType = "UTF-8"
Else
FileEncodeType = "ANSI"
End If
End Function