Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Не могу создать документ в нужной кодировке, Как сменить UTF-8 на windows 1251 
:(
    Опции темы
OPG
Дата 19.5.2005, 09:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 117
Регистрация: 25.2.2005

Репутация: 1
Всего: 1



Проблема встала, замучался уже.
Вот часть кода, для примера вполне хватит.

Начинаю создавать XML файл с помощью dom_xml
Код

$doc=domxml_new_doc("1.0");

$rootelem=$doc->create_element("Document");
$root=$doc->append_child($rootelem);

$node=$root->append_child($doc->create_element("titleDocument"));
$node->set_attribute("idDocument","$idDocument");
$node->set_content("$titleDocument");

Причем $titleDocument поступает из формы естественно на русском языке.

Потом я вывожу созданный документ так.

Код


$string=$doc->dump_mem();



Если $titleDocument на английском языке, то все отлично работает, как только на русском начинаются чудеса. Понимаю, что функция domxml_new_doc создает документ в UTF-8, а как ее заставить создавать в нашей кодировке win-1251? Это первый вопрос.

Ну ладно, предположим нельзя ее заставить в нашей работать, но перекодировать то документ ведь можно потом. Делаю так.

Код


$string=$doc->dump_mem();
$string=iconv("UTF-8","windows-1251","$string");


Не работает! Все также выдает крокозяблики. Причем библиотека нужныя стоит. Братишка установил, а проверка других функций показывает, что они работают.

Пробовал и так проставлять. Хотя смысл функций улавливаю не очень.
Так понимаю они задают кодировку из которой и в которую, а на какие функции это влияет? Я имею в виду это влияет на работу функции iconv или нет.
Код

iconv_set_encoding("internal_encoding", "UTF-8");
iconv_set_encoding("output_encoding", "windows-1251");



Народ! Вся надежда на любимый форум, выручайте. Подскажите в каком направлении копать!!!
PM MAIL   Вверх
Ignat
Дата 19.5.2005, 12:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Флудератор
****


Профиль
Группа: Экс. модератор
Сообщений: 4030
Регистрация: 19.4.2004
Где: غيليندزيك مدينة

Репутация: 10
Всего: 73



OPG, судя по всему это не C++, а PHP.
Вопрос должен быть задан в соответствующем разделе. К XML, это имеет лишь косвенное отношение.
Перемещаю в PHP.


--------------------
Теперь при чем :P
PM   Вверх
Mal Hack
Дата 19.5.2005, 13:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



Цитата(OPG @ 19.5.2005, 10:56)
windows-1251

Такого кода кодиовки не существует, если быть точным. Есть CP1251
Цитата

European languages
    ASCII, ISO-8859-{1,2,3,4,5,7,9,10,13,14,15,16}, KOI8-R, KOI8-U, KOI8-RU, CP{1250,1251,1252,1253,1254,1257}, CP{850,866}, Mac{Roman,CentralEurope,Iceland,Croatian,Romania}, Mac{Cyrillic,Ukraine,Greek,Turkish}, Macintosh
Semitic languages
    ISO-8859-{6,8}, CP{1255,1256}, CP862, Mac{Hebrew,Arabic}
Japanese
    EUC-JP, SHIFT_JIS, CP932, ISO-2022-JP, ISO-2022-JP-2, ISO-2022-JP-1
Chinese
    EUC-CN, HZ, GBK, GB18030, EUC-TW, BIG5, CP950, BIG5-HKSCS, ISO-2022-CN, ISO-2022-CN-EXT
Korean
    EUC-KR, CP949, ISO-2022-KR, JOHAB
Armenian
    ARMSCII-8
Georgian
    Georgian-Academy, Georgian-PS
Tajik
    KOI8-T
Thai
    TIS-620, CP874, MacThai
Laotian
    MuleLao-1, CP1133
Vietnamese
    VISCII, TCVN, CP1258
Platform specifics
    HP-ROMAN8, NEXTSTEP
Full Unicode
    UTF-8
    UCS-2, UCS-2BE, UCS-2LE
    UCS-4, UCS-4BE, UCS-4LE
    UTF-16, UTF-16BE, UTF-16LE
    UTF-32, UTF-32BE, UTF-32LE
    UTF-7
    C99, JAVA
Full Unicode, in terms of uint16_t or uint32_t (with machine dependent endianness and alignment)
    UCS-2-INTERNAL, UCS-4-INTERNAL
Locale dependent, in terms of `char' or `wchar_t' (with machine dependent endianness and alignment, and with OS and locale dependent semantics)
    char, wchar_t
    The empty encoding name "" is equivalent to "char": it denotes the locale dependent character encoding.

When configured with the option --enable-extra-encodings, it also provides support for a few extra encodings:

European languages
    CP{437,737,775,852,853,855,857,858,860,861,863,865,869,1125}
Semitic languages
    CP864
Japanese
    EUC-JISX0213, Shift_JISX0213, ISO-2022-JP-3
Turkmen
    TDS565
Platform specifics
    RISCOS-LATIN1

PM ICQ   Вверх
OPG
Дата 19.5.2005, 14:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 117
Регистрация: 25.2.2005

Репутация: 1
Всего: 1



Да ладно, все же поняли о чем речь идет. Вопрос то в другом...

PM MAIL   Вверх
Mal Hack
Дата 19.5.2005, 14:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



Цитата(OPG @ 19.5.2005, 10:56)
Не работает! Все также выдает крокозяблики. Причем библиотека нужныя стоит. Братишка установил, а проверка других функций показывает, что они работают.

Вроде как в этом... По крайней мере по части кодировке.
В Апаче дефолтная колдировка какая? В PHP?

Это сообщение отредактировал(а) Mal Hack - 19.5.2005, 14:34
PM ICQ   Вверх
OPG
Дата 19.5.2005, 23:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 117
Регистрация: 25.2.2005

Репутация: 1
Всего: 1



Апач не причем если сохраняю в файл, с РНР все нормально, вопрос:
КАК задат кодировку создаваемому новому документу с использованием функции domxml_new_doc, ведь эта функция создает в памяти документ и шпигует его тегами, а на выходе первая строка <?xml version"1.0"?>, а не <?xml version"1.0" encoding="win-1251"?>, или как там по спецификации.
Перекод идет, как следует из мануала с помощью библиотеки iconv, можно с помощью функции icjnv перекодировать строку из одной кодировки в другую, естественно и файл тоже.
В общем упрощу вопрос, какой-то функции, которая нам не подвласта дали русские буквы, она закодировала их в UTF-8, и выдала крокозяблы.
КАК вернуть все на место, или заставить ее создавать документ в нужной кодировке. Учитываем, что документ создается в оператвике, потом дамп скидывается в строку?
PM MAIL   Вверх
Aliance
Дата 20.5.2005, 00:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

Репутация: 14
Всего: 137



А header()`ом тут нельзя? Строку куда потом деваешь? smile)
PM MAIL WWW ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0604 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.