Подтвердить что ты не робот

Как представить код Unicode Chr в литературе VB.Net String?

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

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

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

Это вообще возможно?

4b9b3361

Ответ 1

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

Dim strW As String
strW = ChrW(&H25B2) & "More text"

Ответ 2

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

var str = "\u0030More text";

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

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

Dim str As String = "0MoreText"

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

Ответ 3

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

str = Convert.ToChar(&H0030) & "More text"

Ответ 4

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

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

Ответ 5

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

'Does not compile :('
Dim myString = _ 
<q>This string would contain an escaped character &#30; if it actually compiled.</q>.Value 

Ответ 6

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