Как конвертировать (в качестве примера):Как выводить символы Unicode в виде пары символов ASCII?
Сеньор Кокосовый Y Su Conjunto - Introducción
к:
моря или ± Кокосовое Y Su Conjunto - IntroducciÃμn
У меня есть приложение, которое создает плейлисты m3u, но когда имя файла, исполнителя или названия трека содержит а не ASCII-символы, они не получают надлежащего чтения музыкальным проигрывателем, поэтому трек не воспроизводится.
Я обнаружил, что если я пишу трек, как:
#EXTINFUTF8:76,Señor Coconut Y Su Conjunto - Introducciõn
#EXTINF:76,Señor Coconut Y Su Conjunto - Introducciõn
#UTF8:01-Introducciõn.mp3
01-Introducciõn.mp3
Тогда музыкальный плеер будет читать правильно и воспроизведение дорожки.
Моя проблема заключается в том, что я не могу найти информацию, необходимую мне для правильного преобразования.
Я попытался следующие:
byte[] byteArray = Encoding.UTF8.GetBytes(output);
foreach (Byte b in byteArray)
{
playList.Write(b);
}
где playList = new StreamWriter(filename, false);
но я просто получить ряд выходных чисел:
#EXTINFUTF8:76,83101195177111114326711199111110117116328932831173267111110106117110116111 - 731101161141111001179999105195181110
который я предполагаю, являются числовые значения символов, а не персонажей.
Прошло некоторое время с тех пор, как я сделал это манипулирование персонажами низкого уровня, и я немного ржавый.
UPDATE
Я теперь получил:
byte[] byteArray = Encoding.UTF8.GetBytes(output);
foreach (Byte b in byteArray)
{
playList.Write(Convert.ToChar(b));
}
сделать вывод и на первый взгляд, казалось бы работать. Файл, показанный в Notepad ++, показывает правильную информацию. Однако первый трек еще не воспроизводится.
playList.Write ("{0}", b); это преобразует байт в номер. – Andrey
@ Андрей - я это понимаю;) Я не знаю, что заменить. – ChrisF
см. Мои комментарии к моему ответу – Andrey