Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Работа с UNICODE, Как передать строку UNICODE в скрипт 
V
    Опции темы
idev
Дата 13.2.2008, 00:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Суть проблемы: разрабатывается система с многоязыковым интерфейсом.
Web-сервер динамически генерит HTML-контент, в том числе скрипты.
Столкнулся со странной проблемой при работе с UNICODE, упрощенный пример контента во вложенном файле.

Первый alert выводит строку с кодами UNICODE
Второй - уже нечто более вразумительное: Рубрика.
Вопрос не в том, почему первый alert выводит коды вместо слова - это понятно,
а в том, как же все-таки передать строку UNICODE в скрипт для дальнейшей обработки,
кроме генерации скрытого статического контента.
М.б. есть какой-то способ перекодировки? unescape не помог.

Это сообщение отредактировал(а) idev - 13.2.2008, 13:40

Присоединённый файл ( Кол-во скачиваний: 18 )
Присоединённый файл  test.html 0,60 Kb
PM MAIL   Вверх
Ghirik
Дата 13.2.2008, 03:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Вы где подсмотрели такую разметку HTML?
Оформляйте правильно страницу, хотя бы так:

Код

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> 
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Title block</title>
</head>
<body>
<input id="id1" type="hidden" value="Или другой контент">
<script type="text/javascript">
<!--
var s="Любой ваш контент";
alert(s);
var el=document.getElementById("id1");
alert(el.value);
//-->
</script>
</body>
</html>


или так:

Код

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta http-equiv="Content-Language" content="en-us">
<title>Title block</title>
</head>
<body>
<input id="id1" type="hidden" value="Или другой контент">
<script type="text/javascript">
<!--
var s = "Любой ваш контент";
alert(s);
var el = document.getElementById("id1");
alert(el.value);
//-->
</script>
</body>
</html>





--------------------
Отдадим всё клиенту, пускай его машина мучается...

PM MAIL   Вверх
idev
Дата 13.2.2008, 13:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Суть вопроса не в оформлении HTML - понятно, что в исходном файле кое-чего не хватает. К сожалению, путем полного оформления приведенными Вами вариантами проблема не решается.
PM MAIL   Вверх
Sardar
Дата 13.2.2008, 13:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

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



У тебя исходник в utf-8, сохраняй необходимый текст в utf-8 в исходнике, JS HTML мнемоники не понимает (и не должен).
Как вариант можно кодировать строку \uHHHH кодами, где HHHH это юникод в hex'е, но это лишнее.


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
idev
Дата 13.2.2008, 17:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Спасибо, проблема решилась путем использования

urlencode(строка) - на стороне сервера при генерации контента
и
decodeURIComponent(строка) - в JS на стороне клиента.

Как ни странно, JS - функция unescape() не работала должным образом в паре с серверной urlencode().

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




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


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

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