Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » IkonBoard и другие форумы » Ikonboard v.2 » Использование юникодовых символов NCR ( &#nnnn; )

Модерирует : Antuan

 Версия для печати • ПодписатьсяДобавить в закладки

Открыть новую тему     Написать ответ в эту тему

olsufr



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Имеется Ikonboard v2.1.9
Хочу, чтобы юзеры в своих постингах могли использовать юникодовские символы NCR (&#nnnn;):
т.е. чтобы можно было использовать буквы из разных алфавитов.
 
Сейчас эти символы блокируются скриптом форума и выводятся на экран без замены.
Насколько трудно изменить скрипт, чтобы символы NCR правильно интерпретировались браузером ?  
 
Насколько безопасно, разрешать использование символов NCR?

Всего записей: 363 | Зарегистр. 07-08-2002 | Отправлено: 09:43 20-02-2003
lynx



Advanced lynx
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
olsufr
 

Цитата:
Насколько трудно изменить скрипт, чтобы символы NCR правильно интерпретировались браузером ?  

 
Легко, но муторно - надо каждый символ вводить и обрабатывать.
Второй путь - разрешить HTML, но тогда форум ломается даже не за 5 мин, а быстрее.
 
Это два решения, наверное, есть третье, надо программеров пинать на предмет регулярных выражений.

Всего записей: 11712 | Зарегистр. 08-05-2001 | Отправлено: 19:35 20-02-2003
Marilda

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Легко, но муторно - надо каждый символ вводить и обрабатывать.  

А хоть бы и муторно - объясните, плз, как? Например, мне надо ввести á - это а cо штрихом. И как?
Спасибо.

Всего записей: 381 | Зарегистр. 24-10-2002 | Отправлено: 00:36 17-03-2003
lynx



Advanced lynx
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Marilda
 

Цитата:
 мне надо ввести á - это а cо штрихом. И как?  

 
Один из вариантов.
 
ikon.lib
 
sub ikoncode
 
Делаешь кодом это, каким придумай. По аналогии:
 
$post =~ s|\[hr\]|\<hr width=40\% align=left>|g;
 
Это ^^ <hr>
 
то есть так:
 
$post =~ s|\[^a\]|\\&aacute\;|g;
 
Тогда этому символу будет соответствовать код [^a]
 
 
Есть другие варианты - через sub cleaninput
Но имхо они поопасней, особенно, если плохо понимать, что делаешь.
 
 
 
 
 
Добавлено
Наверняка и еще как-то можно...

Всего записей: 11712 | Зарегистр. 08-05-2001 | Отправлено: 18:35 20-03-2003
Marilda

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
lynx
Спасибо большое. Так и сделаем.
 
Кому не трудно, проглядите, пожалуйста, на предмет нет ли символов, которые - мало ли - нельзя использовать в данном случае. Имею в виду ' ~ ` ^ :  , (их выбор не случаен, именно такими обозначениями принято пользоваться)
$post =~ s|\[a'\]|\\&aacute\;|g;
$post =~ s|\[a`\]|\\&agrave\;|g;
$post =~ s|\[a~\]|\\&atilde\;|g;
$post =~ s|\[a^\]|\\&acirc\;|g;
$post =~ s|\[c,\]|\\&ccedil\;|g;
$post =~ s|\[u:\]|\\&uuml\;|g;
остальные - применительно к буквам e, i, o, u, а также заглавные делаю по аналогии.
 
И еще вопрос. Возможно ли один результат достигать двумя путями? То есть прописать
$post =~ s|\[a'\]|\\&aacute\;|g; (код 1)
$post =~ s|\[&aacute;\]|\\&aacute\;|g; (код 2)
(и так для каждого)
 
Поясню для чего это нужно. Юзеры часто вставляют фрагменты текста, скопированного из языковых источников. Отображаются они при закрытом HTML сами понимаете как - сполшь &iacute; &ocirc; и т.п. Если будет реализовано (код 2), то юзер или модер может в Правке раставить квадратные скобки - и текст примет нужный вид.
Спасибо.
 
Добавление
Че-то чует сердце, слешей нехватает перед ' ` ~ ^ : ,
Да?

Всего записей: 381 | Зарегистр. 24-10-2002 | Отправлено: 12:59 21-03-2003 | Исправлено: Marilda, 17:27 22-03-2003
lynx



Advanced lynx
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Marilda
 

Цитата:
Возможно ли один результат достигать двумя путями? То есть прописать  
$post =~ s|\[a'\]|\\&aacute\;|g; (код 1)  
$post =~ s|\[&aacute;\]|\\&aacute\;|g; (код 2)  
(и так для каждого)  

 
Запросто.
 

Цитата:
Че-то чует сердце, слешей нехватает перед ' ` ~ ^ : ,  
Да?

 
Поставь, они лишними не бывают.
 
Остальное программеров попрошу посмотреть.
 

Всего записей: 11712 | Зарегистр. 08-05-2001 | Отправлено: 19:22 22-03-2003
batva



crazy administrator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Marilda
lynx
 
дак вы что для каждой буквы собираетесь свой иконкод делать?
 
Не проще ли сделать один код, например [unix] [/unix] и ко всему, что внутри него не применять замену & на &amp;
 
 
Добавлено
Таким образом,  ту часть поста, где мембер юзает юникод, он заключает в теги [unix] [/unix]
 
P.S а зачем это нужно?

Цитата:
т.е. чтобы можно было использовать буквы из разных алфавитов.  

Зачем это нужно?

Всего записей: 12593 | Зарегистр. 07-01-2001 | Отправлено: 13:24 23-03-2003
Marilda

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
lynx
batva
Спасибо!
 

Цитата:
Зачем это нужно?  

Форумам, имеющим отношение к иностр. языкам (немецкий, французский, испанский, португальский), это ОЧЕНЬ нужно, супер нужно. БольшАя часть постов требует корректнго отображения этих символов. Иначе выходит типа



Цитата:
Auteur-compositeur-interpr&egrave;te et com&eacute;dien canadien. N&eacute; &agrave; Dunrea...


Цитата:
Reedi&ccedil;&otilde;es de dez CDs do compositor, em edi&ccedil;&otilde;es caprichadas, lan&ccedil;am



 

Цитата:
дак вы что для каждой буквы собираетесь свой иконкод делать?  

Почему нет? Копировать строки не сложно Про символы ' ` ~ & ^ , вопросик был..
 

Цитата:
Не проще ли сделать один код, например [unix] [/unix] и ко всему, что внутри него не применять замену & на &amp;  

 
Добавлено
batva
Если юзеру при наборе постинга придется нечто заключать в [unix]...[/unix], то нет, не проще. Самое удобное - это принятые обозначения заключать в квадратные скобки. Например, символ, соответствующий &ccedil; получить написав [c,].

Всего записей: 381 | Зарегистр. 24-10-2002 | Отправлено: 15:14 23-03-2003 | Исправлено: Marilda, 17:38 23-03-2003
lynx



Advanced lynx
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Marilda
 

Цитата:
Про символы ' ` ~ & ^ , вопросик был..  

 
Да все с ними нормально, можно их юзать, слеши посавь и все нормально.
 

Всего записей: 11712 | Зарегистр. 08-05-2001 | Отправлено: 20:47 23-03-2003
Marilda

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
lynx
А на кой мне тут квадратные скобки? Лучше так:
$post =~ s|a\'|\\&aacute\;|g;
$post =~ s|\\&aacute\;|\\&aacute\;|g;
Или квадратные скобки обязательны? По-моему, нет.
 
То есть, при наборе a' a` a~ a^ будут печататься соответствующие &annnn;
Сложно представить, чтобы такие сочетания использовались иначе, кроме языковых символов (за исключением c, и u: которые придется кодировать как с,, и u:: Но над ними я еще подумаю, а то неизящно как-то).  
 

Всего записей: 381 | Зарегистр. 24-10-2002 | Отправлено: 11:24 25-03-2003
lynx



Advanced lynx
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Marilda
 

Цитата:
Или квадратные скобки обязательны? По-моему, нет.  

 
Скрипту все равно, он ищет совпадение с шаблоном и меняет на заданный образец, ему, что сбобки, что зяпятые, что крестики, чтонолики. Просто пользователям чисто интуитивно будет привычнее, впрочем, решай сама.
 

Всего записей: 11712 | Зарегистр. 08-05-2001 | Отправлено: 13:08 25-03-2003
Marilda

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
lynx
А юзеру и автоподстановка привычная, смайлы же без [ ].
 
Сделала.
 
В той части, что
$post =~ s|a\'|\&aacute\;|g;  
ура, все отлично!  
 
А вот с  
post =~ s|\&aacute\;|\&aacute\;|g;  
облом, даже не знаю почему. Пишу в постинге &aacute; - она и отображает &aacute;

 
 
 

Всего записей: 381 | Зарегистр. 24-10-2002 | Отправлено: 04:51 27-03-2003 | Исправлено: Marilda, 05:06 27-03-2003
batva



crazy administrator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Marilda

Цитата:
post =~ s|\&aacute\;|\&aacute\;|g;  

 
что это такое?
 
Ищем вхождение &aacute; и заменяем на &aacute;  
 

Цитата:
Пишу в постинге &aacute; - она и отображает &aacute;

Потому что у тебя происходит замена & на &amp; еще до того, как скрипт начинает обрабатывать иконкоды...  
sub cleaninput
 

Код:
 
sub cleaninput {
my $text = shift;
$text =~ s/<!--(.|\n)*-->//g;
$text =~ s/<script>/\&lt;script\&gt;/ig;
$text =~ s/\&/\&amp;/g;
$text =~ s/"/\&quot;/g;
$text =~ s/  / \&nbsp;/g;
$text =~ s/</\&lt;/g;
$text =~ s/>/\&gt;/g;
$text =~ s/\|/\&#0124;/g;
$text =~ s/\t//g;
$text =~ s/\r//g;
$text =~ s/  / /g;
$text =~ s/\n\n/<p>/g;
$text =~ s/\n/<br>/g;
return $text;
}
 

 
post =~ s/\&amp;aacute;/\&aacute;/g;  
 
А вообще мне не нравится ваш подход к решению проблемы, я об этом уже писал.
 
 
 

Всего записей: 12593 | Зарегистр. 07-01-2001 | Отправлено: 19:14 30-03-2003
Marilda

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
batva
 

Цитата:
происходит замена & на &amp; еще до того, как скрипт начинает обрабатывать иконкоды

Вот оно что!
 

Цитата:
post =~ s/\&amp;aacute;/\&aacute;/g;  

Сделаем, сделаем. Спасибо!
 
 

Всего записей: 381 | Зарегистр. 24-10-2002 | Отправлено: 19:27 30-03-2003
Marilda

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Помогите, пожалуйста, разобраться. Правила ikon.lib, но впечатление, что испортила все на свете.
Добавила в sub ikoncode  
$post =~ s|\&amp\;aacute\;|\&aacute\;|g;  
и т.д. по буквам, а также  
$post =~ s|\&amp\;\#193\;|\&Aacute\;|g;  
и тоже по буквам, т.к. иногда цитируется таким образом.
Результат: на первый взгляд - прекрасный! Все многочисленные постинги с цитатами из языковых источников в момент приняли нужный вид, что и следовало ожидать.
 
Но: исчезла возможность делать эти цитаты. То есть, если раньше все было как здесь (на этом форуме): из буфера в поле для постинга текст копируется корректно, с графическими ударениями и пр. символами, а в постинг оно уже  преобразовывается в виде &acirc; &ccedil; и т.п.
Так вот, теперь из буфера обмена в поле для ответа уже копируется не так как раньше, а с квадратиками вместо юникодов, и при отправке выдает сообщение о системной ошибке так, что зайти снова в форум можно только очистив куки.
 
Причем, вернула назад старый ikon.lib (даже тот, что был до всех опытов с кодами) - все то же самое, квадратики!! На которые форум реагирует системной ошибкой. Но ведь еще 2 дня назад народ вовсю вставлял цитаты!
 
Такое впечатление, что запортилось что-то. Кроме ikon.lib ничего не трогала. Помогите, пожалуйста, разобраться!

Всего записей: 381 | Зарегистр. 24-10-2002 | Отправлено: 02:10 07-04-2003 | Исправлено: Marilda, 02:13 07-04-2003
Xnom



Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Marilda
кидай свой ikon.lib мне на мыло, вернее тот кусок, что правила...


----------
Китайцы будут атаковать маленькими мобильными группами по 10 млн. человек в каждой....

Всего записей: 778 | Зарегистр. 09-10-2002 | Отправлено: 02:17 07-04-2003
Marilda

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Xnom
Сейчас кину. Но говорю: вернула прежний - не рассосалось
 
 
Добавлено
Поясню проблему.
Вот вставляю цитату в этот форум:
 
   
Отправить.
Результат:

Цитата:
Constela&ccedil;&atilde;o nomes da MPB est&aacute; em O Doutor do Bai&atilde;o, homenagem ao co-autor de Asa Branca e Que Nem Jil&oacute;  

 
А теперь пытаюсь вставить ту же строчку в свой форум.  
 
   
Видите, совсем другое.  
Результат:
Системная ошибка.
 
Прежде такого не было.
 
 
Добавлено
Хм, а шрифт-то у меня стал равномерный, типа Курьера. Даже не помню, раньше такой был или нет. Наверное, в этом проблема, где-то сбился шрифт, которым в поле для ответа постится.

Всего записей: 381 | Зарегистр. 24-10-2002 | Отправлено: 02:23 07-04-2003 | Исправлено: Marilda, 03:23 07-04-2003
Marilda

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
А может это быть связано с русскостью ника? У меня там русский ник. Захожу под латинским - сообщение отправляется. Захожу под Guest'ом - отправляется. Захожу с русским - своим ли, чужим - системная ошибка. А что шрифт Courier стал - у "соседа" по хостингу так же. Только русские ники запрещены и никаких проблем.
А правка в ikon.lib может, и непричем?  

Всего записей: 381 | Зарегистр. 24-10-2002 | Отправлено: 15:20 07-04-2003
Xnom



Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Marilda

Цитата:
А правка в ikon.lib может, и непричем?  

скорее всего. т.к. у меня твои изминения работаю замечательно.
 
 

Цитата:
У меня там русский ник.  

а вот это, скорее всего, и есть та проблема.

Цитата:
Системная ошибка.

результат реакции на русские буквы в названиях файлов


----------
Китайцы будут атаковать маленькими мобильными группами по 10 млн. человек в каждой....

Всего записей: 778 | Зарегистр. 09-10-2002 | Отправлено: 15:31 07-04-2003
Marilda

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Xnom

Цитата:
т.к. у меня твои изминения работаю замечательно

Потестил? Спасибо!!! Тогда поставлю.
А с русскими никами надо мне что-то решать. Но это уже для другого топика - базар профильтровала, тем много про русские ники. Спасибо, Xnom.  

Всего записей: 381 | Зарегистр. 24-10-2002 | Отправлено: 16:17 07-04-2003 | Исправлено: Marilda, 16:22 07-04-2003
Открыть новую тему     Написать ответ в эту тему

Компьютерный форум Ru.Board » IkonBoard и другие форумы » Ikonboard v.2 » Использование юникодовых символов NCR ( &#nnnn; )


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru