Ответ 1
Кажется, что вы хотите заменить фигурные кавычки эквивалентом их кода HTML.
С первого взгляда ваш код абсолютно прав. Проблема заключается в том, что VB разрешает фигурные кавычки вместо обычных котировок в коде (потому что Unicode отлично, не так ли?). То есть, следующие коды эквивалентны:
Dim str = "hello"
Dim str = "hello"
Dim str = "hello"
Теперь, если вы хотите использовать кавычку внутри строки, VB не знает, должна ли кавычка заканчивать строку или нет. В С# это было бы исправлено путем экранирования кавычки, т.е. Вместо """
youd write "\""
. В VB то же самое делается путем удвоения значения кавычки, т.е. """"
.
Вернемся к твоей фигурной цитате. То же, что и для прямых котировок, применяется в соответствии со спецификацией языка VB (¶1.6.4). Чтобы написать курсорную цитату в коде, попробуйте следующее:
StringVar = Replace(StringVar, """", "“")
К сожалению, я не могу попробовать этот код сейчас и его вполне возможно, что среда IDE просто заменяет это прямыми кавычками. Если это так, альтернативой является использование Chr
или ChrW
с символьным кодом "левой двойной кавычки":
StringVar = Replace(StringVar, ChrW(&H201C), "“")
Или, для симметрии, написанной в десятичной форме (но я предпочитаю шестнадцатеричный код символа):
StringVar = Replace(StringVar, ChrW(8220), "“")
Что-то еще: функция Replace
, вероятно, скоро будет устанавлена и не работает везде (например, Windows Phone 7). Вместо этого используйте метод Replace
класса String
:
StringVar = StringVar.Replace(, ChrW(8220), "“")