| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Общие вопросы > Кодировка |
| Автор: MrDmitry 7.9.2011, 15:18 | ||
Помогите разобратся с кодировкой. Выполняю запрос
сайт в кодировки utf-8 В базу данных заносятся ??? за место русских символов (( Перепробовал уже множество различных кодировок, нашел кучу разных функций но ни что мне не помогло ((( |
| Автор: ZBugz 7.9.2011, 19:49 | ||
Пробуй string на WideString поменять, раз ты с UTF8 работаешь, иначе смысла в этом UTF8 нету. |
| Автор: MrDmitry 8.9.2011, 11:24 |
| Не помогло |
| Автор: MetalFan 9.9.2011, 15:09 |
| Версия делфи какая? ааа... так в url надо HTTPEncode из HTTPApp какой-нибудь делать для русских символов. Ну или TIdURI.URLEncode, если indy используешь. |
| Автор: MrDmitry 11.9.2011, 15:04 | ||
Использую indy версия дельфи 2010 |
| Автор: ZBugz 11.9.2011, 18:41 | ||
Тогда попробуй RawByteString, должно вернуть то что есть полюбому, хотя WideString тоже точно работать должен. |
| Автор: MrDmitry 11.9.2011, 19:16 | ||||
| Теперь за место ??? в бд записывается фф Добавлено через 1 минуту и 16 секунд
проблема в том что у меня возвращается нормально. А вот записывается в бд не правильно. Если я в бд в ручную изменю данные на русские символы то возвращается как надо и со string |
| Автор: ZBugz 11.9.2011, 19:56 | ||||||
Дык это пробелма в БД уже, раз функция возвращает все верно. Пиши код БД чтоли...
Это уже потому что в БД не понимает RawByteString. Единственyое что мона попробывать это привести к String (ANSI) принудительно в самой БД или при передачи в нее. Добавлено через 4 минуты и 12 секунд Вот такой с такой же проблемой я боролся с cmd (он же paramstr), там до сих пор ansi используется, только мне из Ansi в Unicode надо было перевести. Пришлось извратится:
Иначе тоже получал белеберду. |
| Автор: MrDmitry 11.9.2011, 20:14 | ||||||||
| Код самой бд я не знаю, т.к её разрабатывал не я и прямого доступа к ней у меня нет, все что есть это транзакция вида http://mysayte.ru/index.php?action=2&session_key=111111111111111111111&phone=11111111111&name=тест&surname=тест&patronymic=тест&birth=01.01.1901 Сайт и сама бд mysql в кодировки utf-8 поля name, surname, patronymic - utf8_general_ci Добавлено через 4 минуты и 32 секунды
твой код ругается на CopyDataStruct. Что нужно дописать в uses? |
| Автор: MrDmitry 11.9.2011, 22:21 |
| В общем сделал банальный перевод русских символов на транслит. Спасибо всем за помощь |
| Автор: ZBugz 12.9.2011, 07:29 | ||||||
Это кусок кода, там это дал для смысла...
Видимо передача просиходит через Dll, а он судя по всему тока ansi понимает. Кстати распространенная проблема с dll, если писал кто нить давно или она стороняя и не поддердивается больше.
Ну тоже вариант |