11 / 9 / 0
Регистрация: 08.05.2011
Сообщений: 87
1

С ASCII в UTF-8

06.07.2011, 20:00. Показов 17665. Ответов 15
Метки нет (Все метки)

Есть строка playername в ASCII надо перевести в UTF-8
И на выходи должно быть string play;

P.S Уже перебрал не получаетца, можете дать готовое решения!
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.07.2011, 20:00
Ответы с готовыми решениями:

<globalization fileEncoding='utf-8' requestEncoding='utf-8' responseEncoding='utf-8' />
Если в коде пишу строку скажем Response.Write ('Вася дурак') - все срабатывает нормально, а если в...

Не правильно конвертирует в UTF-8
Ребят, такая беда, Есть некий байтовый массив, в котором хранится строка я С помощью функции...

Не большой вопрос по UTF - 8
Например у нас есть переменная типа стринг как ее перекодировать в UTF - 8 чтобы потом вывести в...

Encode/Decode UTF-8
День добрый. Имеется строка 1022.%25D0%25A1%25D0%259F_690_small.png и ее изначальное состояние ...

15
389 / 304 / 67
Регистрация: 10.07.2010
Сообщений: 802
06.07.2011, 21:12 2
может что то типа этого
C#
1
string s = Encoding.UTF8.GetString(Encoding.ASCII.GetBytes(String_in_ASCII));
0
11 / 9 / 0
Регистрация: 08.05.2011
Сообщений: 87
06.07.2011, 21:13  [ТС] 3
Цитата Сообщение от zelen Посмотреть сообщение
может что то типа этого
C#
1
string s = Encoding.UTF8.GetString(Encoding.ASCII.GetBytes(String_in_ASCII));
Знаки вопросов
0
1080 / 1006 / 106
Регистрация: 28.02.2010
Сообщений: 2,889
06.07.2011, 21:53 4
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
using System;
using System.IO;
using System.Text;
using System.Windows.Forms;
 
namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
 
        private void Form1_Load(object sender, EventArgs e)
        {
            FileStream fin = File.Open("C:\\in.txt", FileMode.OpenOrCreate);
            FileStream fout = File.Create("C:\\out.txt");
            Int32 len = (Int32)fin.Length;
            byte[] in_bytes = new byte[len];
            fin.Read(in_bytes, 0, len);
 
            Encoding in_code = Encoding.GetEncoding(866);
            Encoding out_code = Encoding.UTF8;
 
            byte[] out_bytes = Encoding.Convert(in_code, out_code, in_bytes, 0, len);
            fout.Write(out_bytes, 0, out_bytes.Length);
            fin.Close();
            fout.Close();
        }
    }
}
Русский текст на ASCII не нашел у себя на компе. Поэтому сделал из CP866 в UTF8.
Чтобы переделать из ASCII в UTF8 нужно исправить:
C#
1
Encoding in_code = Encoding.GetEncoding(866);
на это:
C#
1
Encoding in_code = Encoding.ASCII;
Добавлено через 6 минут
Кстати, а есть смысл переводить?
http://ru.wikipedia.org/wiki/UTF-8
Первые 128 символов из UTF-8 это и есть ASCII. Или я неправильно понял?
0
11 / 9 / 0
Регистрация: 08.05.2011
Сообщений: 87
06.07.2011, 22:14  [ТС] 5
Азурегос
Ну вот мненадо перевести в UTF-8 програминим способом
0
1080 / 1006 / 106
Регистрация: 28.02.2010
Сообщений: 2,889
06.07.2011, 22:30 6
Цитата Сообщение от Ingohor Посмотреть сообщение
Ну вот мненадо перевести в UTF-8 програминим способом
Ну... Мой код это и делает. Программным способом.
0
11 / 9 / 0
Регистрация: 08.05.2011
Сообщений: 87
06.07.2011, 22:32  [ТС] 7
Цитата Сообщение от Евгений М. Посмотреть сообщение
Ну... Мой код это и делает. Программным способом.
Тут до int а мне для string может туплю
0
1080 / 1006 / 106
Регистрация: 28.02.2010
Сообщений: 2,889
06.07.2011, 22:35 8
Цитата Сообщение от Ingohor Посмотреть сообщение
Тут до int а мне для string может туплю
Не понял.
0
11 / 9 / 0
Регистрация: 08.05.2011
Сообщений: 87
06.07.2011, 22:54  [ТС] 9
Можеш сделать вход string на выходе string без файлов а то запутался
0
1080 / 1006 / 106
Регистрация: 28.02.2010
Сообщений: 2,889
06.07.2011, 22:58 10
Входной string как-нибудь сами.
А вот выходной:
C#
1
out_code.GetString(out_bytes);
Только я вот без понятия, в какой кодировке хранится String и в каком отображается. Файлы использовал, потому-что Notepad++ (заменяет обычный блокнот) показывает, в какой кодировке файл.
0
11 / 9 / 0
Регистрация: 08.05.2011
Сообщений: 87
06.07.2011, 23:06  [ТС] 11
C#
1
2
3
4
5
6
7
8
Int32 len = (Int32)playername.Length;
  byte[] in_bytes = new byte[len];
            Encoding in_code = Encoding.GetEncoding(866);
            Encoding out_code = Encoding.UTF8;
 
            byte[] out_bytes = Encoding.Convert(in_code, out_code, in_bytes, 0, len);
            string sk = out_code.GetString(out_bytes);
            listBox1.Items.Add("Player Name: " + sk);
Не работает где ошибка
0
1080 / 1006 / 106
Регистрация: 28.02.2010
Сообщений: 2,889
06.07.2011, 23:13 12
in_bytes объявили, а вот с playername не связан. Только кол-во символов.
0
11 / 9 / 0
Регистрация: 08.05.2011
Сообщений: 87
06.07.2011, 23:29  [ТС] 13
А можног готовий
0
76 / 73 / 9
Регистрация: 09.06.2010
Сообщений: 206
07.07.2011, 12:22 14
Цитата Сообщение от Ingohor Посмотреть сообщение
Есть строка playername в ASCII надо перевести в UTF-8
И на выходи должно быть string play;

P.S Уже перебрал не получаетца, можете дать готовое решения!
Откуда берется строка в ASCII? Строки в .net хранится в кодировке utf-16
Если в строке какие-то непонятные символы, когда ожидается нормальный текст, то значит из источника неправильно прочитано
Т.е. принцип такой - откуда-то чем-то читается строка (например из файла), при этом указывается кодировка файла. Когда прочитали, то имеем строку string, внутри она utf-16. Если ее никуда сохранять ненадо, то больше с ней ничего делать ненадо.
А если надо сохранить, то опять указываем кодировку, в файл сохраняется строка в нужной кодировке. Переводиться из utf-16 в нужную
т.о. кодировки нужны обычно только при получении строки откуда-то и при сохранении строки куда-то, а внутри программы кодировка одна и таже
0
11 / 9 / 0
Регистрация: 08.05.2011
Сообщений: 87
07.07.2011, 16:56  [ТС] 15
Цитата Сообщение от s-kvv Посмотреть сообщение
Откуда берется строка в ASCII? Строки в .net хранится в кодировке utf-16
Если в строке какие-то непонятные символы, когда ожидается нормальный текст, то значит из источника неправильно прочитано
Т.е. принцип такой - откуда-то чем-то читается строка (например из файла), при этом указывается кодировка файла. Когда прочитали, то имеем строку string, внутри она utf-16. Если ее никуда сохранять ненадо, то больше с ней ничего делать ненадо.
А если надо сохранить, то опять указываем кодировку, в файл сохраняется строка в нужной кодировке. Переводиться из utf-16 в нужную
т.о. кодировки нужны обычно только при получении строки откуда-то и при сохранении строки куда-то, а внутри программы кодировка одна и таже
Считиваетца пямять процеса в ASCII
И если при читивани перевести в utf-8 получитца нормальний вариант тот что мне нужен
0
76 / 73 / 9
Регистрация: 09.06.2010
Сообщений: 206
08.07.2011, 01:33 16
Цитата Сообщение от Ingohor Посмотреть сообщение
C#
1
2
3
4
5
6
7
8
Int32 len = (Int32)playername.Length;
  byte[] in_bytes = new byte[len];
            Encoding in_code = Encoding.GetEncoding(866);
            Encoding out_code = Encoding.UTF8;
 
            byte[] out_bytes = Encoding.Convert(in_code, out_code, in_bytes, 0, len);
            string sk = out_code.GetString(out_bytes);
            listBox1.Items.Add("Player Name: " + sk);
Не работает где ошибка
Вам просто нужно при переводе байтов в строку указать кодировку, в которой они представлены в источнике. Никаких преобразований байтов из одной кодировки в другую делать не нужно
C#
1
string sk = Encoding.ASCII.GetString(in_bytes, 0, len);
Если в in_bytes байты строки в ASCII, то в sk будет "нормальный" string
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.07.2011, 01:33
Помогаю со студенческими работами здесь

Декодировать Windows-1251 в utf-8
Сделал запрос на сайт, приходит текст такого типа(должна кириллица) Р’С‹ будете...

Получить html код в utf-8
отправляю get запрос к сайту StreamWriter sw = File.CreateText(&quot;index.html&quot;); http.Method =...

Кодировка Quoted-Printable UTF-8
Здравствуйте ! Пытаюсь раскодировать Quoted-Printable строку... код работает нормально для любой...

Не сохраняется файл в кодировке utf-8 without bom
Мне нужно сохранить файл в кодировке UTF-8 без BOM. Для этого пробовал два способа - ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru