Ахих Тиманов Ответов: 1

Преобразование текста в Юникод


У меня есть текст "Привет", и я хочу преобразовать его в Юникод
var str = "Привет";

 Encoding unicode = Encoding.Unicode;
 byte[] unicodeBytes = unicode.GetBytes(str);
 var rez = Encoding.UTF8.GetString(unicodeBytes).ToString();


В VS debugger я вижу такой результат
https://i.snag.gy/yRP9pJ.jpg

Но в VS preview я вижу неверную кодировку
[^]

Почему же так?

Что я уже пробовал:

Я пытаюсь преобразовать его с помощью кодировки, но это не работает

[no name]

Ваша строка C# уже в Юникоде. Видеть Класс String (System)[^]

phil.o

Точно :) мой виртуальный 5, Вы должны поставить это как ответ, так как я не могу придумать никакого другого значимого ответа.

[no name]

Большое спасибо. Ладно, я попытаюсь сформулировать ответ. Даже эти вещи с юникодом / кодировкой содержат много ловушек для такого ни одного англичанина, как я :)

Perić Željko

Попробуйте UTF8 вместо Unicode , он работает для сербских латинских и кириллических шрифтов.

1 Ответов

Рейтинг:
0

JustWatchLittle

строки c# - это строки Unicode. Он представляет текст в виде последовательности кодовых единиц UTF-16.

Прочтите, например, это: Класс String (System)[^]

[Редактировать]
Не короткое чтение, но чтобы понять unicode, вам, скорее всего, нужно пройти через несколько статей, таких как это: Unicode и вы – BetterExplained[^]

[Edit1]
Смотрите также До сих пор воюют с терминологии Unicode или кодировка - C# для обсуждения[^]


PIEBALDconsult

А также:
https://www.joelonsoftware.com/2003/10/08/the-absolute-minimum-every-software-developer-absolutely-positively-must-know-about-unicode-and-character-sets-no-excuses/

[no name]

Да. Это также первая ссылка в (на второй строке) в ссылке, которую я предоставил :-)

[Редактировать]
Оба они обсуждают эту (на мой взгляд) незначительную вещь, как BOM, но не вдаются дальше в подробное описание суррогатов