Ответ 1
Используйте функцию ChrW()
для возврата символов Юникода.
Dim strW As String
strW = ChrW(&H25B2) & "More text"
Я знаю, что вы можете поместить коды символов Unicode в строку VB.Net следующим образом:
str = Chr(&H0030) & "More text"
Я хотел бы знать, как поместить код символа прямо в строковый литерал, чтобы я мог использовать символы Юникода в представлении конструктора.
Это вообще возможно?
Используйте функцию ChrW()
для возврата символов Юникода.
Dim strW As String
strW = ChrW(&H25B2) & "More text"
Язык С# поддерживает это с помощью escape-кодов:
var str = "\u0030More text";
Но это не доступно в VB.NET. Помните, что вы почти наверняка не хотите использовать Chr(), который предназначен для устаревшего кода, который работает с кодовой страницей по умолчанию. Вы хотите ChrW() и передать код Unicode.
Ваш конкретный пример не является проблемой, & H0030 - это код для "0", поэтому вы можете просто поместить его непосредственно в строковый литерал.
Dim str As String = "0MoreText"
Вы можете использовать утилиту Charmap.exe для копирования и вставки глифов, у которых нет простого кода ASCII.
Замените Chr на Convert.ToChar:
str = Convert.ToChar(&H0030) & "More text"
Я пользуюсь утилитой 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
Нет, это невозможно, так как строки VB не поддерживают escape-последовательности. Просто используйте ChrW
, который содержит несколько символов, но также немного чище.