Кодировка кириллицы в 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, время: 20:35. |