Кодировка кириллицы в UTF-8
Подскажите метод кодировки кириллицы (текстового аргумента переменной), в UTF-8
|
TextEncoder кодирует в utf-8 все.
https://developer.mozilla.org/en-US/...PI/TextEncoder |
чет все равно не понятно. Нужно содержимое v1 преобразовать в utf-8, и присвоить v2
<!DOCTYPE html>
<html>
<head><title>Город</title>
<meta charset="utf-8">
<script src="http://code.jquery.com/jquery-1.10.2.min.js" type="text/javascript"></script>
<script src="https://api-maps.yandex.ru/2.0/?load=package.full&lang=ru-RU" type="text/javascript"></script>
<script type="text/javascript">$(document).ready(function(){
ymaps.ready(function(){
var geolocation = ymaps.geolocation;
$('#tow').html(geolocation.city);
});
});
function calculat (obj) {
var v1 = ymaps.geolocation.city;
var v2 = v1;
obj.res1.value=v1;
obj.res2.value=v2;
}
</script>
<center>
<form name="form" style="width:420px">
<table class=my_table>
<tr align=left><td align=left>
</td><td><input type="button" style="width:50px" name="WB" value="Enter"onclick="calculat(form)">
</td></tr><tr><td align=left>Ваш Город</td><td>
<input type="text" style="width:80px" id="res1">
</td></tr>
<tr><td align=left>utf-8</td><td>
<input type="text" style="width:80px" id="res2">
</td></tr
<tr><td></td><td>
<div id="tow"></div>
</td></tr>
</table>
</form>
</center>
</HTML>
|
utf-8 это способ кодирования кодов UNICODE в последовательность байт, где каждый символ может занимать от 1 до 6 байт в зависимости от его числового кода.
Что у вас в v1? Строка? В javascript она хранится в кодировке utf-16, где каждый (ну большинство часто используемых) символ хранится как число от 0 до 65535 и занимает 2 байта. Если ее перекодировать в utf-8 - получится некоторая последовательность байт. Что вы хотите получить в v2? utf-8 в javascript можно хранить только в Uint8Array - специальный вид массива, где каждый элемент занимает 1 байт. C ним невозможно работать как со строкой. |
Morris,
может так? var v2 = escape(v1); |
Это переведет в esape последовательность в utf-16
"Москва" превращается в "%u041C%u043E%u0441%u043A%u0432%u0430" А где и зачем это может понадобиться? В utf-8 esape последовательность должна быть "%D0%9C%D0%BE%D1%81%D0%BA%D0%B2%D0%B0" Что бы ее можно было в url вставлять. |
voraa,
тогда encodeURIComponent |
encodeURIComponent переводит пробел в %20, вместо +, если нужно использовать в параметрах url.
Не знаю, всегда ли и насколько это допустимо. Короче, надо выяснять для чего это автору нужно, и как потом использовать |
Добавил escape, получилось как надо, работает. Выделяю эту абракадабру и браузер открывает нужный город))),
Но в учебниках пишут что это Устарело, Эта возможность была удалена из веб-стандартов. Хотя некоторые браузеры по-прежнему могут поддерживать её, она находится в процессе удаления. Не используйте её ни в старых, ни в новых проектах. Страницы или веб-приложения, использующие её, могут в любой момент сломаться. Так тоже работает var v2 = encodeURIComponent(v1); Для чего это нужно? 1. Нужно привязать код страницы к конкретному городу, и чтобы она не работала в другом городе. 2. Также саму кириллицу (город) в коде хотелось прикрыть абракадаброй, чтобы не читаемо было.
<!DOCTYPE html>
<html>
<head><title>Город</title>
<meta charset="utf-8">
<script src="http://code.jquery.com/jquery-1.10.2.min.js" type="text/javascript"></script>
<script src="https://api-maps.yandex.ru/2.0/?load=package.full&lang=ru-RU" type="text/javascript"></script>
<script type="text/javascript">$(document).ready(function(){
ymaps.ready(function(){
var geolocation = ymaps.geolocation;
$('#tow').html(geolocation.city);
});
});
function calculat (obj) {
var v1 = ymaps.geolocation.city;
var v2 = escape(v1);
obj.res1.value=v1;
obj.res2.value=v2;
}
</script>
<center>
<form name="form" style="width:600px">
<table class=my_table>
<tr align=left><td align=left>
</td><td><input type="button" style="width:50px" name="WB" value="Enter"onclick="calculat(form)">
</td></tr><tr><td align=left>Ваш Город</td><td>
<input type="text" style="width:380px" id="res1">
</td></tr>
<tr><td align=left>utf-8</td><td>
<input type="text" style="width:380px" id="res2">
</td></tr
<tr><td></td><td>
<div id="tow"></div>
</td></tr>
</table>
</form>
</center>
</HTML>
|
| Часовой пояс GMT +3, время: 21:27. |