PHP: $charset = strtolower($charset); if ($charset=="utf-8"){ $transformator = $text; $transformator = json_encode($transformator); $arr_replace_cyr=array("\u0410", "\u0430", "\u0411", "\u0431", "\u0412", "\u0432", "\u0413", "\u0433", "\u0414", "\u0434", "\u0415", "\u0435", "\u0401", "\u0451", "\u0416", "\u0436", "\u0417", "\u0437", "\u0418", "\u0438", "\u0419", "\u0439", "\u041a", "\u043a", "\u041b", "\u043b", "\u041c", "\u043c", "\u041d", "\u043d", "\u041e", "\u043e", "\u041f", "\u043f", "\u0420", "\u0440", "\u0421", "\u0441", "\u0422", "\u0442", "\u0423", "\u0443", "\u0424", "\u0444", "\u0425", "\u0445", "\u0426", "\u0446", "\u0427", "\u0447", "\u0428", "\u0448", "\u0429", "\u0449", "\u042a", "\u044a", "\u042d", "\u044b", "\u042c", "\u044c", "\u042d", "\u044d", "\u042e", "\u044e", "\u042f", "\u044f"); $arr_replace_utf = array("А", "а", "Б", "б", "В", "в", "Г", "г", "Д", "д", "Е", "е", "Ё", "ё", "Ж","ж","З","з","И","и","Й","й","К","к","Л","л","М","м","Н","н","О","о","П","п","Р","р","С","с","Т","т","У","у","Ф","ф","Х","х","Ц","ц","Ч","ч","Ш","ш","Щ","щ","Ъ","ъ","Ы","ы","Ь","ь","Э","э","Ю","ю","Я","я"); $transformator = str_replace($arr_replace_cyr, $arr_replace_utf, $transformator); $text = $transformator; }
Он не на всех хостингах) Поэтому если хочешь сделать действительно платформонезависимый софт придется извращаться.
Добрый день Всем! Столкнулся с этой же проблемой, но есть одно НО !!! На localhost всё отрабатывает нормально: в *.php существует многомерный массив, после чего передаю его - echo json_encode($mas); на стороне JavaScript принимаю - var res1 = <?php include('array.php'); echo json_decode($mas); ?>; и вывожу на консоль - console.log(res1); всё супер !!! а как только вылаживаю на Хостинг сразу трабл с кодировкой возникает. Как только не извращался - ничего не спасает - может кому то всё таки удалось решить этот трабл. Буду признателен за помошь. Заранее Спасибо !
Посмотрите заголовки Encoding, которые отдаёт сервер и поменяёте их функцией header. Я лично таким методом перевёл весь аякс в системе на однобайтовую кодировку.
Лучше для кого? Для пользователя? Ему по большому счету главное чтобы не крякозябры были Для СУБД это не лучше, так как требуется в 2 раза больше места под текстовую информацию. Правда я писал свою реализацию перекодировщика JSON, которая кстати в 2 раза быстрее штатной.
мускул 5 изначально настроен на использование utf-8. так что скорее это лучше, чем хуже. к тому же при правильном использовании избавляешься от многих проблем, среди которых отправка JSON, хранение многоязыкового содержимого; отсутствие вообще каких-либо проблем с хранением непонятных символов и ещё много-много чего. а взамен лишь чуть больше места для хранения в базе.
Ну то что мускул настроен на интернациональную кодировку, это только говорит о том, что приложение нацелено на интернациональную аудиторию. Хорошие знания в области кодирования данных не приведут к «каким-либо» проблемам с хранением непонятных символов. Я ориентирую свои приложения в первую очередь на Россию и СНГ максимум, но никак не Китай и Индию, так что UTF-8 отложим на потом не то что проблема его использовать — перенастроить кодировку несложно — просто не вижу каких-либо серьезных причин его использовать (по крайней мере у нас). Если бы я писал приложение, ориентированное на использование во всем мире, то естественно выбрал бы UTF. В полтора-два раза больше места это не чуть-чуть... Насчёт того как подружить JSON и 1251 (исходники js открыты) http://studio-sdom.ru