|
|
|
ASCII в UTF-8 никак не переводится
|
|||
|---|---|---|---|
|
#18+
Все три способа приводят к тому, что в $enc содержится "ASCII", а в БД заносится текст в виде "????? ???". Код: php 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2012, 23:20:56 |
|
||
|
ASCII в UTF-8 никак не переводится
|
|||
|---|---|---|---|
|
#18+
Известно, в какой кодировке исходные данные? Какая СУБД? Мож забыли установить кодировку соединения... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2012, 23:30:40 |
|
||
|
ASCII в UTF-8 никак не переводится
|
|||
|---|---|---|---|
|
#18+
Во-первых, если ВСЕ данные, передающиеся в БД - в ASCII, то зачем вообще что-то конвертить руками? Во-вторых, в БД заносится ??????, а НЕ заносить в БД пробовали? Т.е. вы вообще выяснили, проблема в чем заключается: не конвертирует php или портится при внесении в БД? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2012, 23:36:23 |
|
||
|
ASCII в UTF-8 никак не переводится
|
|||
|---|---|---|---|
|
#18+
vkleИзвестно, в какой кодировке исходные данные? Нет. Предположительно ASCII. Запрос делаю не через браузер, а через приложение для Android, которое называется Tasker. Через браузер - проблем не возникает с добавлением данных. vkleКакая СУБД? Мож забыли установить кодировку соединения... MySQL. А как ее установить и где? Вроде бы все там в utf8_general_ci. Edd.DragonВо-первых, если ВСЕ данные, передающиеся в БД - в ASCII, то зачем вообще что-то конвертить руками? Потому что если этого не делать или делать так, как сейчас - то получаем ??? ??? в БД. О чем я и говорил. Edd.DragonВо-вторых, в БД заносится ??????, а НЕ заносить в БД пробовали? Т.е. вы вообще выяснили, проблема в чем заключается: не конвертирует php или портится при внесении в БД? А как я это попробую, если запрос делаю не через браузер, а через Tasker под Android? Ну дайте тогда пожалуйста код, чтобы в файл записать/прочитать. Я потестирую таким образом без БД. Пожалуйста, если не сложно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.07.2012, 00:50:23 |
|
||
|
ASCII в UTF-8 никак не переводится
|
|||
|---|---|---|---|
|
#18+
Запрос SHOW VARIABLES LIKE 'char%' выдал следующее character_set_client utf8 character_set_connection utf8 character_set_database latin1 character_set_filesystem binary character_set_results utf8 character_set_server latin1 character_set_system utf8 character_sets_dir /usr/share/mysql/charsets/ Нужно ли что-то поменять в настройках? Если да, то скажите пожалуйста какими запросами или как через phpMyAdmin. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.07.2012, 01:06:14 |
|
||
|
ASCII в UTF-8 никак не переводится
|
|||
|---|---|---|---|
|
#18+
авторcharacter_set_database latin1 Если при создании БД не было указано UTF8 (или win1251, по вкусу), то она в latin1. Несмотря на правильную кодировку таблиц, это может влиять. Лучше пересоздать все заново в правильной кодировке. авторНу дайте тогда пожалуйста код, чтобы в файл записать/прочитать Набираем в гугле php file и он уже подсказывает варианты. Проще всего этой функцией: http://php.net/manual/ru/function.file-put-contents.php авторПотому что если этого не делать или делать так, как сейчас - то получаем ??? ??? в БД. При подключении к БД первым делом следует выполнить (не обязательно, если по-дефолту все ок) Код: sql 1. Движок теперь знает, что от вас получает данные в 1251. А таблица в UTF8? Ок, сам и сконвертирует. И другая ситуация. Не указываете. По дефолту кодировка одна. Таблицы - в другой. Данные от вас - в третьей. Конвертируете - в четвертую. Ну это хуже не придумаешь, но смысл, думаю, понятен )) авторНужно ли что-то поменять в настройках? Если да, то скажите пожалуйста какими запросами или как через phpMyAdmin. Настройки менять не обязательно. Кодировку и базы, и таблиц при создании есть где выбрать в Админе. Главное - не забывать это делать. Ну и выполнять SET NAMES в php. Вот создайте новую БД и табличку тестовую строго в UTF8. Кодировку конекшина в такую, в которой данные (выгрузив в файл - посмотрите). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.07.2012, 01:43:28 |
|
||
|
ASCII в UTF-8 никак не переводится
|
|||
|---|---|---|---|
|
#18+
Edd.Dragonавторcharacter_set_database latin1 Если при создании БД не было указано UTF8 (или win1251, по вкусу), то она в latin1. Несмотря на правильную кодировку таблиц, это может влиять. Лучше пересоздать все заново в правильной кодировке. После изменений в phpMyAdmin стало вот так. Пересоздавать теперь не надо? авторcharacter_set_client utf8 character_set_connection utf8 character_set_database utf8 character_set_filesystem binary character_set_results utf8 character_set_server latin1 character_set_system utf8 character_sets_dir /usr/share/mysql/charsets/ Edd.DragonавторНу дайте тогда пожалуйста код, чтобы в файл записать/прочитать Набираем в гугле php file и он уже подсказывает варианты. Проще всего этой функцией: http://php.net/manual/ru/function.file-put-contents.php Создал пустой файл на компе (Windows 7) и скопировал его по FTP. Потом запустил скрипт, который записывает в него. Потом скопировал файл с FTP и открыл. В файле "??????". Значит проблема не в БД наверное... Как дальше бороться за жизнь? :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.07.2012, 02:44:31 |
|
||
|
ASCII в UTF-8 никак не переводится
|
|||
|---|---|---|---|
|
#18+
авторПосле изменений в phpMyAdmin стало вот так. Пересоздавать теперь не надо? Это новые БД будут теперь по дефолту создаваться в UTF8. А уже имеющаяся, если сейчас latin1, то такой и остается. авторВ файле "??????". Без перекодирования как есть сохранить и открыть в редакторе, в котором можно повыбирать разные кодировки. Например, в Notepad++ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.07.2012, 03:00:38 |
|
||
|
|

start [/forum/topic.php?fid=23&msg=37896186&tid=1464865]: |
0ms |
get settings: |
8ms |
get forum list: |
19ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
869ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
39ms |
get tp. blocked users: |
1ms |
| others: | 247ms |
| total: | 1201ms |

| 0 / 0 |
