Я знаю, что можно поместить коды символов Unicode в строку VB.Net как это:
str = Chr(&H0030) & "More text"
Я хотел бы знать, как я могу исправить символьный код в строковый литерал, таким образом, я могу использовать символы Unicode от представления разработчика.
Это даже возможно?
Язык C # поддерживает это с помощью экранирования:
var str = "\u0030More text";
Но это недоступно в VB.NET. Помните, что вы почти наверняка не хотите использовать Chr (), который предназначен для устаревшего кода, который работает с кодовой страницей по умолчанию. Вам понадобится ChrW () и передать код Unicode.
Ваш конкретный пример не является проблемой, & H0030 - это код для "0", поэтому вы можете просто поместить его прямо в строковый литерал.
Dim str As String = "0MoreText"
Вы можете использовать утилиту Charmap.exe для копирования и вставки глифов, которые не имеют простого кода ASCII.
Я использую утилиту Character Map (charmap.exe). Запустите и выберите символы, которые вы хотите использовать в шрифте элемента управления, например © Missico ™, скопируйте и вставьте в свойство Text
в сетке свойств. Вам придется изменить шрифт, потому что шрифт по умолчанию для формы - «Microsoft Sans Serif», который не является шрифтом Unicode. Я не думаю, что вы можете использовать этот метод для непечатаемых символов.
В зависимости от ваших потребностей вы также можете использовать локализацию, которая создает файлы ресурсов для каждого языка. Опять же, вы должны использовать charmap.exe, чтобы выбрать и скопировать необходимые символы и вставить их в файл ресурсов. Вероятно, вы можете использовать непечатаемые символы, такие как табуляция, новая строка и т. Д., Поскольку это просто текстовый файл (Unicode).
Я надеялся, что вы можете использовать литералы XML и экранирование XML, но это не сработало. Я не думаю, что XML-литералы позволяют использовать & # NN;
. Хотя это способ включения кавычек "
внутри строк.
'Does not compile :('
Dim myString = _
<q>This string would contain an escaped character  if it actually compiled.</q>.Value
Используйте функцию ChrW ()
для возврата символов Юникода.
Dim strW As String
strW = ChrW(&H25B2) & "More text"
Нет, это невозможно, поскольку строки VB не поддерживают escape-последовательности. Просто используйте ChrW
, что на несколько символов больше для ввода, но также немного чище.