簡體   English   中英

正則表達式功能將字符替換為十六進制代碼

[英]Regex function to replace characters to HEX code

我編寫了使用Zebra打印機的代碼,我需要使用帶有iso-8859-1的特殊字符進行打印。

要打印標簽,我使用RawPrinterHelp類並完成工作,但是當有特殊字符時不起作用。

我在此鏈接https://www.utf8-chartable.de/unicode-utf8-table.pl中找到該表,並編寫了一個函數,使用標簽中的正則表達式代碼將特殊字符轉換為十六進制utf8。

我的功能是

Public Shared Function GetRawString(str As String) As String
    Dim s As String = vbNullString
    s = Regex.Replace(str, "[\p{L}-[a-zA-Z]]", Function(m) String.Join(String.Empty, m.Value.[Select](Function(c) String.Format("_c3_{0:x2}", Convert.ToInt32(c))).ToArray()))
    Return s
End Function

但這導致轉換后的字符串不起作用。

問題是在函數中將鏈接轉換為格式時,替換“ c3 {0:x2}”的正確字符串是什么?

我不能使用正則表達式來解決此問題,我創建了自己的函數供以后參考此答案。

Public Shared Function GetRawString(str As String) As String
    Dim l() As String = {"á", "à", "ã", "â", "é", "ê", "í", "ó", "ô", "õ", "ú", "ç", "Á", "À", "Ã", "Â", "É", "Ê", "Í", "Ó", "Ô", "Õ", "Ú", "Ç", "°"}
    Dim c() As String = {"_c3_a1", "_c3_a0", "_c3_a3", "_c3_a2", "_c3_a9", "_c3_aa", "_c3_ad", "_c3_b3", "_c3_b4", "_c3_b5", "_c3_ba", "_c3_a7", "_c3_81", "_c3_80", "_c3_83", "_c3_82", "_c3_89", "_c3_8a", "_c3_8d", "_c3_93", "_c3_94", "_c3_95", "_c3_9a", "_c3_87", "_c2_b0"}
    Dim s As String = vbNullString

    For i = LBound(l) To UBound(l)
        str = str.Replace(l(i), c(i))
    Next

    Return str

End Function

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM