Как представить код Unicode Chr в строковом литерале VB.Net? - PullRequest
18 голосов
/ 29 июня 2010

Я знаю, что вы можете поместить коды символов Unicode в строку VB.Net следующим образом:

str = Chr(&H0030) & "More text"

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

Возможно ли это?

Ответы [ 6 ]

26 голосов
/ 30 июня 2010

Используйте функцию ChrW() для возврата символов Юникода.

Dim strW As String
strW = ChrW(&H25B2) & "More text"
14 голосов
/ 30 июня 2010

Язык C # поддерживает это с помощью escape-кодов:

var str = "\u0030More text";

Но это не доступно в VB.NET.Помните, что вы почти наверняка не хотите использовать Chr (), который предназначен для устаревшего кода, который работает с кодовой страницей по умолчанию.Вы хотите ChrW () и передать код Unicode.

Ваш конкретный пример не является проблемой, и H0030 - это код "0", поэтому вы можете просто поместить его непосредственно в строковый литерал.

Dim str As String = "0MoreText"

Вы можете использовать Charmap.exeутилита для копирования и вставки глифов, которые не имеют простого кода ASCII.

4 голосов
/ 14 июня 2016

Заменить Chr на Convert.ToChar:

str = Convert.ToChar(&H0030) & "More text"
1 голос
/ 30 июня 2010

Я надеялся, что вы могли бы использовать литералы XML и экранированные символы XML, но это не работает.Я не думаю, что литералы XML позволяют вам использовать &#NN;.Хотя это способ включения кавычек " в строки.

'Does not compile :('
Dim myString = _ 
<q>This string would contain an escaped character &#30; if it actually compiled.</q>.Value 
1 голос
/ 30 июня 2010

Я использую утилиту Character Map (charmap.exe). Запустите и выберите нужные символы в шрифте элемента управления, например © Missico ™, скопируйте их и вставьте в свойство Text в сетке свойств. Вам придется изменить шрифт, потому что шрифт по умолчанию для формы - «Microsoft Sans Serif», который не является шрифтом Unicode. Я не думаю, что вы можете использовать этот метод для непечатных символов.

В зависимости от ваших потребностей, вы также можете использовать локализацию, которая создает файлы ресурсов для каждого языка. Опять же, вы должны использовать charmap.exe, чтобы выбрать и скопировать необходимые символы и вставить в файл ресурсов. Возможно, вы можете использовать непечатаемые символы, такие как вкладки, перевод строки и т. Д., Поскольку это всего лишь текстовый файл (Unicode).

0 голосов
/ 30 июня 2010

Нет, это невозможно, поскольку строки VB не поддерживают escape-последовательности.Просто используйте ChrW, что на несколько символов больше, но также немного чище.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...