|
|
|
| Привет народ,
посмотрел, что постеры сдесь компетентные а я запарился с одной проблемкой. Надеюсь что поможете. Меня мучает вопрос насчёт - htmlentities(); -
Как оно точно работет? Дело в том, что у нас есть страничка
http://www.kraft-reisen.de, и там есть два входа (две версии), русский и немецкий. Проблема в гостевухе - она должна быть одна и надобно, чтобы писать в ней можно было и по русски и по немецки.
Через "charset" я установил пока немецкий, но как я понимаю, комбинации русский + немецкий не существует. Поэтому я думал установить руссий "charset " и перевернуть через PHP немецкие буквы - такие как "öäüß", чтобы те были преобразованы в нормальный для этого языка вид. (пока при русской кодировке броузер показывает "цдьЯ").
Я нашёл функцию htmlentities(), и думаю что с ней как-то должно получится - но как точно я не знаю.
Заранее благодарен за помощ
Сергей | |
|
|
|
|
|
|
|
для: SeKo
(18.09.2004 в 15:02)
| | htmlspecialchars() и htmlentities() всегда вам будут бить симоволы вида ö, так & заменяется & Вообще говоря странно, что у вас такая проблема с кодировками - у меня ваши пример на локальном сервер прекрасно выводил немецкие умлауты вместе с русским текстом (полсе того, как я закомментировал строку с htmlspecialchars() - может и не стоит их пре).
Вы так же можете поиграться с функций библиотеки iconv - позволящих переводить текст из одной кодировки в дургую.
PS Лучше в следующий раз такой большой код прикреплять в виде файла :)))
PPS А может проще поступить, просто перед вызовом htmlspecialchars() заменить символы на их немецкие эквиваленты:
<?php
$simbols = array("ü","ö","ä");
$de = array("uoa"); // Ну здесь подставить умлауты соотвествующие
$text = str_replace($simbols,$de,$text);
?>
|
http://www.softtime.ru/group/id_group=11 | |
|
|
|
|
|
|
|
для: cheops
(18.09.2004 в 15:56)
| | Приветик,
>ваш пример на локальном сервере прекрасно выводил немецкие
Как? где? А в гостевуху заглядывали?
>умлауты вместе с русским текстом (полсе того, как я
>закомментировал строку с htmlspecialchars() - может и не
>стоит их пре).
эм ... не понял
http://www.kraft-reisen.de/gaestebuch/guestbook.php
Я сейчас поставил на русский чарсет, вместо Gaestebuch (на а умлаут), стоит Gдstebuch.
>Вы так же можете поиграться с функций библиотеки iconv -
>позволящих переводить текст из одной кодировки в дургую.
угу
>PS Лучше в следующий раз такой большой код прикреплять в
>виде файла :)))
да, извеняюсь не подрасчитал. В нотепаде вроде таким маленьким казался :-).
>PPS А может проще поступить, просто перед вызовом
>htmlspecialchars() заменить символы на их немецкие
>эквиваленты:
в смысле сначала htmlspecialchars() функцию а потом ваш код? :
>
<?php
> $simbols = array("ü","ö","ä");
> $de = array("uoa"); // Ну здесь подставить умлауты
>соотвествующие
> $text = str_replace($simbols,$de,$text);
>?>
|
а как должна гласить togda htmlspecialchars()?
и куда ж её писать?
Извеняюсь за глупость. :-)
Sergej | |
|
|
|
|
|
|
|
для: SeKo
(18.09.2004 в 16:33)
| | >Как? где? А в гостевуху заглядывали?
Нет, просто запустил приведённый вами код на локальном сервере дома.
>эм ... не понял
Просто если убрать htmlspecialchars() в строке 459 - немецкие буквы начинают отображаться по нормальному (на моём сервере, что в общем не значит, что у вас будет тоже самое).
>в смысле сначала htmlspecialchars() функцию а потом
>ваш код? :
Нет, этот код обязательно нужно выводить до вызова функции htmlspecialchars():
<?php
$simbols = array("ü","ö","ä");
$de = array("uoa"); // Ну здесь подставить умлауты соотвествующие
$text = str_replace($simbols,$de,$text);
$text = htmlspecialchars(stripslashes($text));
?>
|
Если вы хотите вызывать его после, тогда следует использовать вариант:
<?php
$text = htmlspecialchars(stripslashes($text));
$simbols = array("&#252;","&#246;","&#228;");
$de = array("uoa"); // Ну здесь подставить умлауты соотвествующие
$text = str_replace($simbols,$de,$text);
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(18.09.2004 в 16:56)
| | Т.е. осуществлять преобразование в 459 строке, непосредственно перед выводом сообщение на страницу. | |
|
|
|
|
|
|
|
для: cheops
(18.09.2004 в 17:01)
| | WOW !
с ума сойти. Вот это голова. В такой короткий срок разобраться в чужом коде... уважаю. Мне бы этот уровень. класс.
Спасибо огромное, cheops.!
Всё работает. (кроме моей головы :-( .)
Сергей | |
|
|
|
|
|
|
|
для: cheops
(18.09.2004 в 15:56)
| | >умлауты вместе с русским текстом (полсе того, как я
>закомментировал строку с htmlspecialchars() - может и не
>стоит их пре).
да, мне надо поработать над русской лексикой программиста. :-)
В этом комменте было всё предельно ясно сказано.
Спасибо ещё раз. | |
|
|
|