| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C++ Builder > URL Encode |
| Автор: Kasiro 11.7.2011, 22:57 |
| Всем привет. Нужно русский текст перевести в "незнаю как это называется" Пример Тест = %D0%A2%D0%B5%D1%81%D1%82 нашёл исходники http://stackoverflow.com/questions/154536/encode-decode-urls-in-c они пашут только мне выдаётся не то что нужно, какой то другой код который гугл тоже понимает, но нужен другой пример: выдаёт %F2%E5%F1%F2, а мне нужно %D1%82%D0%B5%D1%81%D1%82 и то и другое гугл воспринял как "тест", но нужно кодирование именно во второй вариант пожалуйста какие есть идеи и предложения) |
| Автор: artsb 11.7.2011, 23:18 |
Это quoted printable. Начните изучение http://en.wikipedia.org/wiki/Quoted-printable. Добавлено через 1 минуту и 52 секунды Судя по количеству закодированных байт, первое это однобайтовая кодировка (возможно, windows-1251), а вторая двухбайтовая (возможно, utf-16). |
| Автор: volatile 12.7.2011, 00:06 |
UTF-8 D1 82 D0 B5 D1 81 D1 82 <= тест |
| Автор: artsb 12.7.2011, 08:08 |
Я понимаю. Поэтому я и написал "возможно". Кстати, английские символы в кодировке utf-8 имеют размер 1 байт, а не 2. Сори. Малость напутал. Это URL Encoding. Почитать можно http://ru.wikipedia.org/wiki/URI_encoding#.D0.9A.D0.BE.D0.B4.D0.B8.D1.80.D0.BE.D0.B2.D0.B0.D0.BD.D0.B8.D0.B5_URL. В принципе, разница только в том, что в quoted printable в качестве спец символа используется "=", а в URL Encoding - "%". Остальное, вроде бы, так же. |
| Автор: Kasiro 12.7.2011, 08:45 |
| Спасибо большое, прочитал. Может есть у кого то готовый код который енкодил бы текст? |
| Автор: srt 12.7.2011, 10:11 | ||
сначала урлэнкод потом в бэйз64 загоняется, выбери себе и подрихтуй :О) сделал потомучто родные функции почемуто очень тормозные (я про 6 версию) в мультибайт сами переведёте |
| Автор: artsb 12.7.2011, 11:35 |
А что там делать то? |
| Автор: Kasiro 12.7.2011, 12:33 |
| srt, спасибо |
| Автор: Kasiro 16.7.2011, 15:53 | ||
Ребят, чёто я невкурю как перевести это дело в мультибайт
тут я уже методом тыка начал, получаю такую строку: тест = "%42%35%41%42" |
| Автор: artsb 16.7.2011, 19:00 | ||
|
| Автор: Kasiro 16.7.2011, 20:26 |
| artsb, спасибо большое! влепил себе этот код, на тест получил - "%04%42%04%35%04%41%04%42" мож неправильно что то делаю? |
| Автор: artsb 16.7.2011, 20:53 |
а что неправильного в строке? Добавлено через 1 минуту и 58 секунд А, вы про это? Так в примере выше кодируется UTF-16. А строка в комментарии - это закодированный UTF-8. |
| Автор: artsb 16.7.2011, 21:48 | ||
Пробуйте так:
|
| Автор: Kasiro 16.7.2011, 22:03 |
| artsb, а можете подсказать что нужно изменить чтобы было %D1%82%D0%B5%D1%81%D1%82 ?) |
| Автор: Kasiro 16.7.2011, 23:02 |
| artsb, Урааа))) работает)) премного благодарен! больше спасибо!)) |