Jump to content
  • 0

AJAX и кодировка


rome.ro
 Share

Question

Здравствуйте!

Знаю, что боян, но Гугл не выдл того, что нужно. В общем, проблема не нова - при вызове файлов через XMLHTTP они доставляются в UTF-ной кодировке - как сделать windows-1251. Впринципе, я всегда использую стандартный метод -> через PHP - т.е.просто отправляю зголовок с кодировкой windows-1251, но на этот раз мне необходимо реализовать все без поддержки PHP - т.е. получить с помошью синхронного запроса простой текстовый файл в кодировке windows-1251 - как это сделать?

Спасибо.

Link to comment
Share on other sites

12 answers to this question

Recommended Posts

  • 0

Знаю два решения.

1) Переход на UTF-8. Является самым оптимальным и разумным;

2) Перевод возвращаемой строки из UTF-8 в нужную кодировку (JavaScript);

Edited by Vialls
Link to comment
Share on other sites

  • 0
Знаю два решения.

1) Переход на UTF-8. Является самым оптимальным и разумным;

2) Перевод возвращаемой строки из UTF-8 в нужную кодировку (JavaScript);

1) А можно-ли русскоязычные символы отображать в UTF-8? Насколько знаю, вроде как нет.

2) Можно подробнее про второй вариант?

Кстате, я искал вариант решения проблемы через указание Апачу отправлять все документы по-умолчанию в WINDOWS-1251 - кто-то знает как это можно сделать через .htaccess?

Link to comment
Share on other sites

  • 0

1) В юникоде двух байтовые символы, там есть почти все алфавиты мира, и еще можно столько же записать даже больше. Пора уже забывать про cp1251;

2) Ищите готовые решения, есть написанные функции для перекодировки;

3) Директива apache AddDefaultCharset.

Edited by Vialls
Link to comment
Share on other sites

  • 0
1) В юникоде двух байтовые символы, там есть почти все алфавиты мира, и еще можно столько же записать даже больше. Пора уже забывать про cp1251;

Поподробнее можно? Где об этом почитать можно?

Спасибо.

Link to comment
Share on other sites

  • 0
1) В юникоде двух байтовые символы, там есть почти все алфавиты мира, и еще можно столько же записать даже больше. Пора уже забывать про cp1251;

И простой неанглийский текст становится в 2 раза больше по весу.

Все бы хорошо, но новостным лентам такое "бесплатное" увеличение веса страницы смерти подобно.

т.е. получить с помошью синхронного запроса простой текстовый файл в кодировке windows-1251 - как это сделать?

Превратить все нестандартные символы в такой вид: Ӓ

Примеры есть на сайте php.net где-то в примерах перекодировки с помощью функции iconv

Edited by s0rr0w
Link to comment
Share on other sites

  • 0
И простой неанглийский текст становится в 2 раза больше по весу.

Все бы хорошо, но новостным лентам такое "бесплатное" увеличение веса страницы смерти подобно.

Имхо, не так уж это и страшно в эпоху повсеместного gzip-сжатия при передаче...

Link to comment
Share on other sites

  • 0

Да, есть проблема с размером символов, для этого я отправил чела на статью, что бы узнать все об этой кодировке.

Но! s0rr0w, ты не подумал об одной проблеме — "#1234;" = 5 байт :).

Даже если не учитывать, что мы будем использовать Ajax, и не будем переводить все символы в спецсимволы HTML, если на сайте довольно часто используются спецсимволы HTML (кавычки, дефис, и др) они весят гораздо больше UTF-8 символов, поэтому страница обычно увеличивается не более чем на 25-30%.. Конечно все это зависит от многих факторов, но ИМХО в наше время уже более 80% людей сидит на нормальном инете, который позволит загружать страницы весящие немного больше чем страница в кодировке win-1251..

Edited by Vialls
Link to comment
Share on other sites

  • 0
Но! s0rr0w, ты не подумал об одной проблеме — "#1234;" = 5 байт :).

Подумал конечно же. :) Тут нужно смотреть на весь проект в целом. Если размер страницы, в которую будут догружать дополнительный контент большой, а сам дополнительный контент относительно маленький, то переход на UTF может дать больше трафика, если не использовать эту кодировку для всего сайта.

Даже если не учитывать, что мы будем использовать Ajax, и не будем переводить все символы в спецсимволы HTML, если на сайте довольно часто используются спецсимволы HTML (кавычки, дефис, и др) они весят гораздо больше UTF-8 символов, поэтому страница обычно увеличивается не более чем на 25-30%.. Конечно все это зависит от многих факторов, но ИМХО в наше время уже более 80% людей сидит на нормальном инете, который позволит загружать страницы весящие немного больше чем страница в кодировке win-1251..

Если ты внимательно читал то, что я написал, то проблема не в каналах пользователей, а в производительности сервера владельца.

Да и фича со спец-символами, это не более чем маркетинговый ход, который дает, в лучшем случае, всего пол процента добавки к юзабилити.

Link to comment
Share on other sites

  • 0
Если ты внимательно читал то, что я написал, то проблема не в каналах пользователей, а в производительности сервера владельца.

Видимо невнимательно. Это конечно проблема, но.... почти незначительная, хотя смотря для кого, для меня нет :)

Да и фича со спец-символами, это не более чем маркетинговый ход, который дает, в лучшем случае, всего пол процента добавки к юзабилити.

Ты прав. Но все равно, текст со спецсимволами смотриться как-то нагляднее и красивее, нежели со стандартными ASCII символами...

Link to comment
Share on other sites

  • 0
Видимо невнимательно. Это конечно проблема, но.... почти незначительная, хотя смотря для кого, для меня нет ^_^

Для новостных и информационных ресурсов это серьезная проблема. Дешевле отказаться от кодировки, чем покупать десяток серверов.

Ты прав. Но все равно, текст со спецсимволами смотриться как-то нагляднее и красивее, нежели со стандартными ASCII символами...

Если бы некоторые не акцентировали на этом внимание, то никто бы не считал это важным фактором. Простота и скорость - сила веба.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy