Кодировка

[Удален]
513

Посмотрите, пожалуйста, правильно ли я делаю.

---

Что есть:

- сайт на PHP

- кодировка базы и таблиц UTF-8

Проблема: при передаче параметров в базу через GET в базе отображаются вопросы или крякозябры

Как решил бороться:

1) добавил ini_set('default_charset','UTF-8');

2) добавил mysql_query("SET NAMES 'utf8';");

3) переменные кодирую из 1251 в UTF вот так -> $header = iconv("WINDOWS-1251","utf-8",$_GET['header']);

Работает. С компьютера, где Windows и русских язык по умолчанию.

Не работает если в GET передавать слово, например glцg (<- на сёрче, шведская буквы о с двумя точками тоже запарывается), на шведском. С шведским работает, если только убрать iconv.

Думаю, может смотреть переменную HTTP_ACCEPT_CHARSET windows-1251,utf-8 и в зависимости от того, что там, конвертировать.

---

Спасибо за прочтение до конца, подскажите пожалуйста, правильно ли я делаю и есть ли какие то готовые решения.

dkameleon
На сайте с 09.12.2005
Offline
386
#1

зачем, вам вообще 1251?

передавайте сразу ютф-8.

aristan:
С компьютера, где Windows и русских язык по умолчанию.

не имеет значения.

aristan:
Не работает если в GET передавать слово

хтмл документ сделайте в ютф-8.

Дизайн интерьера (http://balabukha.com/)
[Удален]
#2

dkameleon, сделал.

Помогите, пожалуйста.

В Google Chrome ввожу ссылку insert.php?header=тест и всё нормально приходит в базу, без перекодировки.

В FireFox ввожу эту же ссылку, он её перекодирует в такое insert.php?header=%F2%E5%F1%F2 и в базу попадает пустое значение.

Как можно побороть это?

aristan добавил 04.01.2011 в 00:01

только если сделать ini_set('default_charset','cp1251'); то ссылка из FireFox выводится верно

dkameleon
На сайте с 09.12.2005
Offline
386
#3
aristan:

только если сделать ini_set('default_charset','cp1251'); то ссылка из FireFox выводится верно

нафига вам опять эта 1251?

aristan:
В FireFox ввожу эту же ссылку, он её перекодирует в такое insert.php?header=%F2%E5%F1%F2

значит фаерфокс до сих пор считает вашу страницу в 1251. что-то не доделали.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий