Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Смена кодировки в форме
 
 автор: anuk   (24.09.2009 в 13:07)   письмо автору
1.9 Кб
 
 

Добрый день.
подскажите, пожалуйста, как можно изменить кодировку введенного в форму слова (приложила файл).
Подробности:
сайт у меня в windows-1251, a сайт Lingvo - в utf-8, т. о. при вводе в поле слова для перевода, открывается сайт Lingvo с введенным мной словом в виде квадратиков.

Спасибо!

  Ответить  
 
 автор: coloboc66   (24.09.2009 в 17:26)   письмо автору
 
   для: anuk   (24.09.2009 в 13:07)
 

В ява-скрипт есть специальная функция для прекодирования в Юникод, но, блин, забыл её название! Но я вам посоветую перевести свой сайт в Юникод и никогда не будете иметь проблем в будущем. И не надо будет ничего перекодировать.
Вот, кажется, эта функция:
encodeURIComponent('привет мир');

  Ответить  
 
 автор: Sergeich   (24.09.2009 в 18:02)   письмо автору
 
   для: coloboc66   (24.09.2009 в 17:26)
 

Нет специальной функции перекодирования в Юникод. Приведенная Вами функция выполняет так называемое URI-кодирование, т. е. в адресе изменяет лишь потенциально недопустимые символы (кирилические, /, ? пробелы и т. п.) остальные же оставляет такими, как они и есть. Например, пробел будет заменен последовательностью "%20". Единственный выход - действительно перевести файл с формой отправки в Юникод. Так как текст принимает кодировку страницы с формой ввода.

  Ответить  
 
 автор: coloboc66   (24.09.2009 в 22:38)   письмо автору
 
   для: Sergeich   (24.09.2009 в 18:02)
 

Угу, завтра поспорим... Эта функция именно кодирует в Юникод любую кириллицу, если я не ошибаюсь...

  Ответить  
 
 автор: AlexSol   (25.09.2009 в 07:57)   письмо автору
 
   для: coloboc66   (24.09.2009 в 22:38)
 


Метод escape() возвращает строку (в формате Unicode)

  Ответить  
 
 автор: anuk   (25.09.2009 в 08:28)   письмо автору
 
   для: AlexSol   (25.09.2009 в 07:57)
 

Большое спасибо за отклики!
Дело в том, что я, к сожалению, не знаю js (представленный в файле код брала на сайте Lingvo), - смутно представляю себе куда вставить представленные Вами функции, чтобы заработало :( , подскажите, пожалуйста.
Спасибо!

  Ответить  
 
 автор: coloboc66   (25.09.2009 в 09:57)   письмо автору
 
   для: anuk   (25.09.2009 в 08:28)
 

Девушка, если вы не знаете ява-скрипт, то и не парьтесь с ним, а просто перекодируйте свои странички в Юникод. Для этого в их заголовках нужно указать
<html><title>test</title><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

Потом в редакторе сохранить их в кодировке UTF-8
и закачать их на свой хостинг.
И ВСЁ! И тогда ничего вам переделывать и писать функции будет не нужно.
Если вы хотите работать с иностранными языками, то забудьте о любых кодировках, кроме UTF-8.

  Ответить  
 
 автор: Sergeich   (25.09.2009 в 10:34)   письмо автору
 
   для: AlexSol   (25.09.2009 в 07:57)
 

escape(); как и упомянутый выше метод encodeURIComponent(); возвращают один и тот же результат. Интересно, где Вы взяли информацию про Юникод? Можно хоть одну ссылочку? Или пример работы этого метода с вхождением в windows-1251 и возвращением текста в юникоде?

http://www.faqs.org/rfcs/rfc1738

  Ответить  
 
 автор: anuk   (25.09.2009 в 11:05)   письмо автору
 
   для: Sergeich   (25.09.2009 в 10:34)
 

В том-то и дело, что я пока не могу изменить кодировку всего сайта, а изменение кодировки конкретной страницы ничего не дает, т. к. она включена в другую, - мне необходимо, чтобы, при вводе пользователем слова, оно (невидимо для пользователя) меняло кодировку, либо при нажатии кнопки посылало уже перекодированное слово. Я приблизительно представляю себе, что можно воспользоваться каким-то событием для вызова функции, что-то вроде этого:
<input onchange="escape();" id=words maxLength=100 name=words align="left">

либо к кнопке привязать событие, только я не знаю какое именно событие - пробовала- не получилось, и вообще, не знаю права ли я в своем предположении.
Подскажите, please

  Ответить  
 
 автор: coloboc66   (25.09.2009 в 11:51)   письмо автору
 
   для: anuk   (25.09.2009 в 11:05)
 

Сергеич: странная ситуация - я помню, что когда-то кодировал данные формы этим методом и у меня всё вроде бы как получалось, но потерял те скрипты. Сейчас пробую - не выходит. Если вы правы, то девушке только один выход - менять кодировку своего сайта.

  Ответить  
 
 автор: heed   (25.09.2009 в 16:24)   письмо автору
 
   для: anuk   (24.09.2009 в 13:07)
 

что-то похожее наверное должно быть
-----------------------------------------------------
<script>
function my_xfunc(obj) {
window.open("http://www.abbyyonline.ru/translate.aspx?lingvoaction=translate&VTI\-GROUP="\
+ obj.VTI_GROUP.value +"&Ln=1&words="\
+ encodeURI(obj.words.value) +"&submit=Traducere"\
,"", "alwaysRaised,menubar,HEIGHT=300,WIDTH=400");
}
</script>

<form charset="" onSubmit="my_xfunc(this); return false;" id=translationForm action="http://www.abbyyonline.ru/translate.aspx" method=get style="margin:5px;">
<input type=hidden value=translate name=lingvoaction>
<input type=hidden value=0 name=VTI_GROUP>
<select class=loForm name=Ln style="width:175">
<option value=1 selected>Engleza &lt;&gt; Rusa</option>
<option value=2>Germana &lt;&gt; Rusa</option>
<option value=3>Franceza &lt;&gt; Rusa</option>
<option value=4>Italiana &lt;&gt; Rusa</option>
<option value=5>Spaniola &lt;&gt; Rusa</option>
<option value=1>Rusa &lt;&gt; Engleza</option>
<option value=2>Rusa &lt;&gt; Germana</option>
<option value=3>Rusa &lt;&gt; Franceza</option>
<option value=4>Rusa &lt;&gt; Italiana</option>
<option value=5>Rusa &lt;&gt; Spaniola</option>
</select>
<br /><br>

<input class=loForm id=words maxLength=100 size=25 name=words align="left" style="width:175">
<br /><br>
<input name="submit" type=submit class=loFormB value=Traducere />
</form>

<form enctype="multipart/form-data" action="http://src/PERL/test_UPLOAD.pl" method="post">
<input type="hidden" name="MAX_FILE_SIZE" value="30000" />
Отправить этот файл: <input name="userfile" type="file" />
<input type="submit" value="Send File" />
</form>

-----------------------
пришлось изменить VTI-GROUP на VTI_GROUP, не знаю как по другому обратиться к элементу

//upd в ие только не сработали такие переносы строк как +\
, одной строкой работает

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования