在古代,我们可以使用chr(56)
例如,假设角色不可打印。我们想把它放在一个字符串中。只是做
Dim a as string = chr (56)
现在我们有UTF8或unicode(或任何编码)。
说我想要变量a来包含
    en space
    em space
    thin space
‌ ‌ zero width non-joiner
‍ ‍ zero width joiner
‎ ‎ left-to-right mark
‏ ‏ right-to-left mark
事实上,我想创建一个能够从我的字符串中删除所有这些字符的函数。
我该怎么做?
我希望这个功能能够完整地保留中文,韩文,日文字符,然后摆脱真正含糊不清的功能。
答案 0 :(得分:1)
''' <summary>
''' This function replaces 'smart quotes' (ASC 145, 146, 147, 148, 150) with their correct ASCII versions (ASC 39, 34, 45), and replaces any other non-ASCII characters with "?"
''' </summary>
''' <param name="expression"></param>
''' <returns></returns>
''' <remarks></remarks>
Public Function Unicode2ASCII(ByVal expression As String) As String
Dim sb As New System.Text.StringBuilder
For i As Integer = 1 To Len(expression)
Dim s As String = Mid(expression, i, 1)
Select Case Asc(s)
Case 145, 146 'apostrophes'
sb.Append("'"c)
Case 147, 148 'inverted commas'
sb.Append(""""c)
Case 150 'hyphen'
sb.Append("-"c)
Case Is > 127
sb.Append("?"c)
Case Else
sb.Append(s)
End Select
Next i
Return sb.ToString
End Function
或者添加它们......
Dim s As String = "a" & ChrW(8194) & "b"
MsgBox(s)
答案 1 :(得分:1)
Replace删除您想要的任何内容。 ChrW按代码生成Unicode字符(要生成Unicode平面0以外的字符,需要连接2个字符)。
类似的东西:
Replace("My text", ChrW(8194), "");
答案 2 :(得分:0)
似乎应该有一个更好的方法,但我能想出的最好的方法在所有情况下都适用:
Private Function getString(ByVal xmlCharacterCode As String) As String
Dim doc As XmlDocument = New XmlDocument()
doc.LoadXml("<?xml version=""1.0"" encoding=""utf-8""?><test>" + xmlCharacterCode + "</test>")
Return doc.InnerText
End Function
然后像这样使用它:
myString = myString.Replace(getString(" "), "")
另外,您可能需要查看我找到的这个页面:
Easy way to convert &#XXXX; from HTML to UTF-8 xml either programmaticaly in .Net or using tools