StreamWriter заменяет некоторые японские символы на некоторые странные символы в C# - PullRequest
0 голосов
/ 26 апреля 2020

У меня есть строка ввода displayName в формате base64, используемая для сравнения.

displayName:: Rmlyc3ROYW1lW0FCQ0Q65LqL5qWt5qeL6YCg5pS56Z2p6YOoIOizvOiyt+alreWLmeS8geeUu+OD

geODvOODoF0oRmlyc3ROYW1lKQ ==

Мы конвертируем base64 значение в byte[] затем в строку, используя Encoding.UTF8

byte[] newbytes = Convert.FromBase64String(displayname);
string displaynameReadable = Encoding.UTF8.GetString(newbytes);

Вывод displaynameReadable = FirstName[ABCD:事業構造改革部 購買業務企画チーム](FirstName)

Таким образом, при записи значений в CSV-файл. Я использую StringWriter.

StringWriter writer;
writer = new StreamWriter(writeFIle);

Он должен записать значение displaynameReadable в файл CSV, который включает японские символы. Но после использования streamWriter происходит преобразование японских символов displaynameReadable в некоторые странные символы

Вывод после потоковой записи:

displayName = FIRSTNAME[ABCD:äº‹æ¥­æ§‹é€ æ”¹é©éƒ¨ 購買業務ä¼ç”»ãƒãƒ¼ãƒ ](FIRSTNAME)

Я полагаю, кодировка по умолчанию, используемая в streamWriter, - это Кодировка. .UTF8 Не удалось получить символы Japanese в выходном файле

...