Javascript-форум (https://javascript.ru/forum/)
-   Серверные языки и технологии (https://javascript.ru/forum/server/)
-   -   Кодировка для работы с БД (https://javascript.ru/forum/server/30100-kodirovka-dlya-raboty-s-bd.html)

Deff 24.07.2012 20:38

На самом деле имхо проблема часто не в этом - а в прописе в
http://habrahabr.ru/blogs/webdev/17640/
Цитата:

Цитата:

Просто не Хватает PHP скрипта на стороне сервера
Для GET запросов

Всё, что надо сделать, чтобы теперь работать
в PHP в
нормальной кодировке использовать iconv:

$f = iconv('UTF-8', 'windows-1251', $_GET['f']);
Цитата:

Для Post запросов
А для того, чтобы сервер отдавал яваскрипту в правильной кодировке (т.е. в такой же кодировке, в которой отдаются все xhtml страницы) просто в начале вашего ajax.php пропишите заголовок:

header('Content-type: text/html; charset=windows-1251');

И всё будет ок.


devote 24.07.2012 20:41

Deff,
если он использует методы json_encode/json_decode то с кодировкой windows-1251 они не работают, поэтому нужно кодировать данные для этих методов в кодировку utf-8.

9xakep 24.07.2012 20:44

А я для маленьких текстов (типа ников) Не стал мучиться и писал: escape(str), а на станице где надо вывести: unescape()

Deff 24.07.2012 21:28

Цитата:

Сообщение от devote
если он использует методы json_encode/json_decode

Черть её зает - посколь у ТС только указано jQuery Аякс (а я привел типовую ошибку на которую неоднократно нарывался, поэтому и привёл , посколь приходится просить править PHP кодеров

x-yuri 25.07.2012 00:35

Цитата:

Сообщение от devote
увы но не всегда.. Были у меня проблемы с этим при использовании простого SET NAMES 'utf8', от того и стал делать так как написал выше.. Хуже от этого не стало, зато стабильно на любых настройках и любых базах работает.

Не верю, что это было решением проблемы. А если и было, надо было разобраться в причине, я считаю. Танцы с бубном и уличная магия какие-то получаются. Так недалеко до:
if (true != false) {   // на всякий случай
    ...
}

Gozar 27.07.2012 23:52

Цитата:

Сообщение от x-yuri
надо было разобраться в причине

Возможно он знает причину и не говорит, ибо она банальна. Типа сделайте нам такой скрипт, но настройки на сервере у нас такие и доступа к ним мы вам не дадим.

x-yuri 28.07.2012 13:08

Настройки сессии нельзя изменить? Мне собственно и интересует. что там такого было, настройки это или не настройки. Возможно это было в период перехода на 5-ый mysql. По-моему там возникали проблемы типа "БД в кодировке X, а mysql думает, что она в кодировке Y", но вариант предлженный devote не похож на решение. Я думаю он не знает причину, или не помнит.

Цитата:

Сообщение от 9xakep
А я для маленьких текстов (типа ников) Не стал мучиться и писал: escape(str), а на станице где надо вывести: unescape()

Где и для чего? Она deprecated.

devote 28.07.2012 13:27

Цитата:

Сообщение от x-yuri
или не помнит.

вот именно что не помню причину. Ибо проблема эта возникала где-то в году 2008, и конечно же я уже не помню причины. Но на тот момент это было единственное быстрое решение, хотя конечно можно было решить работоспособность с set names но в тот момент нужно было решить вопрос быстро. И некогда было заморачиваться с чем либо.


Часовой пояс GMT +3, время: 22:25.