Преобразование из Unicode в оригинальном формате с#
Я хочу конвертировать из Unicode в его оригинальный формат UTF8, я думаю, и это может быть арабский язык, как показано ниже. Пользователь вводит текст в юникоде и когда он нажимает кнопку Конвертировать он будет преобразован в исходный формат как показано ниже :
string unicode ="\u0633\u0637\u0648\u0631 \u0639\u0628\u0631 \u0627\u0644\u0623\u064a\u0627\u0645 1";
выходные данные должны соответствовать исходному формату:
سطور عبر الأيام 1 | شمس الدين خ
я использовал http://msdn.microsoft.com/en-us/library/vstudio/kdcak6ye%28v=vs.100%29.aspx[^]
как ссылка на меня, но выход такой же, как и вход, ничего не произошло, никакого преобразования не произошло, Может ли кто-нибудь посоветовать мне, что не так?
Что я уже пробовал:
private void btn_convert_Click(object sender, EventArgs e) { string unicodestring = txt_unicode.Text; // Create two different encodings. Encoding ascii = Encoding.ASCII; Encoding unicode = Encoding.Unicode; //Encoding Utf8 = Encoding.UTF8; // // Convert the string into a byte array. byte[] unicodeBytes = unicode.GetBytes(unicodestring); // // Perform the conversion from one encoding to the other. byte[] ascibytes = Encoding.Convert(unicode,ascii,unicodeBytes); // // Convert the new byte[] into a char[] and then into a string. char[] asciiChars = new char[ascii.GetCharCount(ascibytes, 0, ascibytes.Length)]; ascii.GetChars(ascibytes, 0, ascibytes.Length, asciiChars, 0); string asciiString = new string(asciiChars); // // Display the strings created before and after the conversion. //MessageBox.Show("Original string is"+unicodeString); MessageBox.Show("Ascii converted string is" + asciiString); }
Richard MacCutchan
Вы не можете использовать GetBytes для строки в этой форме. Вы должны сначала преобразовать все escape-последовательности в их числовые значения, чтобы сделать "реальную" строку Unicode.
PIEBALDconsult
Я не понимаю, в чем тут дело. Зачем вообще нужна конверсия? Когда я подключаю это утверждение к VS, я получаю:
سطور عبر الأيام 1