Excel 替换字符串中的奇怪或特殊字符
我正在尝试将Excel文件转换为SQL查询。我的问题是在给我的文件中有特殊字符。我无法替换它们CTRL+H,因为它们根本不显示在Excel文件中。当我编写查询(utf8或ANSI)时,它们会显示出来。使用Ultra Edit,它们显示为十六进制C2 92。使用utf8中的Notepad++时,它们显示为PU2。在ANSI中,它们显示为'。我怀疑这是撇号。顺便说一下,这是一份法国文件 到目前为止,我试图把它放在一个字符串中并进行这些操作,但没有任何效果Excel 替换字符串中的奇怪或特殊字符,excel,vba,character-encoding,vb6,Excel,Vba,Character Encoding,Vb6,我正在尝试将Excel文件转换为SQL查询。我的问题是在给我的文件中有特殊字符。我无法替换它们CTRL+H,因为它们根本不显示在Excel文件中。当我编写查询(utf8或ANSI)时,它们会显示出来。使用Ultra Edit,它们显示为十六进制C2 92。使用utf8中的Notepad++时,它们显示为PU2。在ANSI中,它们显示为'。我怀疑这是撇号。顺便说一下,这是一份法国文件 到目前为止,我试图把它放在一个字符串中并进行这些操作,但没有任何效果 Dim Line as String Li
Dim Line as String
Line = Wb.Worksheets(1).Cells(LineNo, ColNo)
Line = Replace(Line, "Â’", "''")
Line = Replace(Line, "’", "''")
Line = Replace(Line, "Â", "''")
Line = Replace(Line, Chr(194) & Chr(146), "''") 'decimal value of C2 92
Line = Replace(Line, Chr(146) & Chr(194), "''") 'inverted decimal value of C2 92
谢谢 不要试图消除各种垃圾角色,而要专注于只保留好的角色。假设我们知道有效字符是大写和小写字母、数字和下划线。此代码将只保留好的代码:
Public Function KeepOnlyGood(s As String) As String
Dim CH As String, L As Long, i As Long
KeepOnlyGood = ""
L = Len(s)
For i = 1 To L
CH = Mid(s, i, 1)
If CH Like "[0-9a-zA-Z]" Or CH = "_" Then
KeepOnlyGood = KeepOnlyGood & CH
End If
Next i
End Function
如果您想用空格替换垃圾邮件,可以修改代码以实现此目的。数据库中的数据是如何编码的?如果替换SQL中的“特殊”字符会导致问题吗?
“
似乎是ChrW(8192)。您有一个Unicode字符“PRIVATE USE TWO”,我不知道这是否对您有帮助,但更多信息可以在这里找到:您能否共享Excel文件的示例,以及它在SQL中的外观?如果其他人不必猜测起点和终点是什么样的,那么他们就更容易帮助别人。这些“不可见字符”在SQL中有什么用途(Excel中不需要)?这个“奇怪的”Excel源文件来自哪里?另一个应用程序?我敢打赌@Jeeped实际上并没有记住那个Unicode ID。我敢打赌,如果我们用谷歌搜索,我们一定能找到他是怎么知道的