Функция регулярного выражения для замены символов в коде HEX - PullRequest
0 голосов
/ 14 сентября 2018

Я пишу код для использования принтера 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}" в моей функции для преобразования в формат в ссылке?

1 Ответ

0 голосов
/ 14 сентября 2018

Я не могу использовать регулярные выражения, чтобы решить эту проблему, я создал свою собственную функцию для дальнейшего использования этого ответа.

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
...