DELPHI不知道怎么判断文件或字符串是否是UTF8编码。
我看到一个VB写的Function OnUtf8(ByVal byts() As Byte) As Boolean
Try
Dim i As Int32, AscN As Int32
Do While i <= UBound(byts)
If byts(i) < 128 Then
i += 1 'ascii字符
AscN += 1
ElseIf (byts(i) And &HE0) = &HC0 And (byts(i + 1) And &HC0) = &H80 Then
i += 2 '2个字节的utf8
ElseIf (byts(i) And &HF0) = &HE0 And (byts(i + 1) And &HC0) = &H80 And (byts(i + 2) And &HC0) = &H80 Then
i += 3 '3个字节的utf8
Else
Return False
End If
Loop
断可以不要,当全部是ascii字符时,被划分到哪种编码
If AscN = byts.Length Then
Return False
Else
Return True
End If
Catch ex As Exception
'MsgBox(ex.Message)
End Try
End Function
我看到一个VB写的Function OnUtf8(ByVal byts() As Byte) As Boolean
Try
Dim i As Int32, AscN As Int32
Do While i <= UBound(byts)
If byts(i) < 128 Then
i += 1 'ascii字符
AscN += 1
ElseIf (byts(i) And &HE0) = &HC0 And (byts(i + 1) And &HC0) = &H80 Then
i += 2 '2个字节的utf8
ElseIf (byts(i) And &HF0) = &HE0 And (byts(i + 1) And &HC0) = &H80 And (byts(i + 2) And &HC0) = &H80 Then
i += 3 '3个字节的utf8
Else
Return False
End If
Loop
断可以不要,当全部是ascii字符时,被划分到哪种编码
If AscN = byts.Length Then
Return False
Else
Return True
End If
Catch ex As Exception
'MsgBox(ex.Message)
End Try
End Function
解决方案 »
- cxgrid 编辑后保存问题
- delphi 配置文件怎么写
- 如何实现即时更新ListView显示内容!
- [高分求解简单SQL问题]动态报表如何生成?我做的一个小系统的最后一个模块?请各位给点建议,顶者有分
- 控制台能嵌入窗体吗?大家来讨论!
- 在win98下如何新建拨号连接,用程序实现,注意是新建一个连接,急,要多少分给多少只要我有分
- FastReport2.5打印数据库中的图片问题,急...在线等待.....
- 关于DELPHI读写文本的问题
- 我下载了tinyDB 2.8,需要注册怎么办?
- 一个会者不难问题,不妨大家看一下吧!(我只有这点分啦请不要嫌弃哦我下次一定补给你们好吗?)
- 救急啊,
- 要使用IHTMLWindow4,该添加什么引用?
if ansi转utf8(utf8转为ansi(str))=str then
是utf8编码!