![]() |
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]() ![]() ![]() |
|
namata |
|
|||
Новичок Профиль Группа: Участник Сообщений: 15 Регистрация: 13.9.2007 Репутация: нет Всего: нет |
Генерирую kml файлы (google maps) из базы. Тоже самое что xml, только расширение другое. В базе все utf_generic_ci; php-скрипт находится в отдельном файле в кодировке UTF: он берет данные, собирает нужный текст просто в переменной $kml (не через dom) и обновляет файл:
В итоге получается файл в ANSI (DOS). Google у меня понимает этот файл, только если я руками сделаю следующие манипуляции: 1) смена в текстовом редакторе (пробовал это все в PSPad и в блокноте - одно и тоже) кодировки файла на UTF-8; 2) сохранение под другим именем, т.е. обязательно надо создать новый файл - перезапись старого не срабатывает. Пожалуйста, объясните это с научной точки зрения, а то звон бубна сплошной у меня в ушах. Научите записывать файл сразу в нужной кодировке или конвертировать созданный. iconv переменной с текстом, header('Content-Type: text/html; charset=UTF-8'); в начале php, добавление "b" к fopen не работает. Если файл руками переделать в utf, то после обновления он становится ansi. |
|||
|
||||
GeneralElectric |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 797 Регистрация: 11.1.2008 Репутация: 13 Всего: 16 |
да уж. header('Content-Type в пхп-скрипте, который пишет в файл - это не бубен, это сводный оркестр шаманов п-ова Ямал.
из базы данные приходят в какой кодировке? |
|||
|
||||
namata |
|
|||
Новичок Профиль Группа: Участник Сообщений: 15 Регистрация: 13.9.2007 Репутация: нет Всего: нет |
Да mysql_query("SET NAMES 'utf8'"); помогло перед запросом. Хотя я был уверен что это не нужно, так как в базе данные лежат в utf_general_ci. Не совсем понимаю почему так происходит. И почему в таком случае iconv не сработал...
|
|||
|
||||
GeneralElectric |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 797 Регистрация: 11.1.2008 Репутация: 13 Всего: 16 |
SET NAMES не влияет на кодировку, в которой лежат данные в базе. он влияет на то, в какой они приходят.
а иконв работает только тогда, когда ему правильно указать кодировки. но в любом случае, я, честно, удивлен, что вопрос был не как получить данные из базы в нужной кодировке. я, когда еду в отпуск, проверяю, сколько взял с собой денег. 2-3 раза. а не рассуждаю "в пачке лежала тысяча". вот первым делом проверяю - что кладу к себе в карман. а не потом, в отпуске, предъявляю претензии карману. Добавлено через 1 минуту и 33 секунды "лежать" данные в utf_general_ci не могут. это правила сравнения при поиске. а кодировка - utf8. причем не самих данных, а поля, в котором они лежат. а сами данные могут быть в любой другой. |
|||
|
||||
namata |
|
|||
Новичок Профиль Группа: Участник Сообщений: 15 Регистрация: 13.9.2007 Репутация: нет Всего: нет |
А есть способ узнать в какой точно кодировке данные ну допустим в переменной php?
|
|||
|
||||
skyboy |
|
|||
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 75 Всего: 260 |
нет. кодировка - это только соглашение программиста с самим собой. точно так же, как система счисления: строка "1001100" может означать запись в любой возможной системе счисления - с основанием от минус бексконечности до бесконечности(исключая ноль). Добавлено через 5 минут и 53 секунды специализированные программы(например, Штирлиц или блокнот Bred2) определяют кодировку эмпирически: перебирают доступные кодировки, пока символы из файла в соответствие с текущей кодировкой все не станут алфавитно-цифровыми символами - никаких символов псевдографики и т.д.. а так - в текстовом потоке никакой информации о кодировках нет. И текстовые переменные подобной информации не хранят. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "PHP" | |
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |