type icon español equiv content code charset javascript html utf-8 character-encoding utf-32

javascript - icon - utf-8 html



¿Es posible convertir una cadena que contenga caracteres unicode "altos" en una matriz que consista en valores dec deducidos de los códigos utf-32("reales")? (1)

Parece que tienes que descodificar parejas sustitutas manualmente. Por ejemplo:

function decodeUnicode(str) { var r = [], i = 0; while(i < str.length) { var chr = str.charCodeAt(i++); if(chr >= 0xD800 && chr <= 0xDBFF) { // surrogate pair var low = str.charCodeAt(i++); r.push(0x10000 + ((chr - 0xD800) << 10) | (low - 0xDC00)); } else { // ordinary character r.push(chr); } } return r; }

Código completo: http://jsfiddle.net/twQWU/

Por favor, mira este script que opera en una cadena (teóricamente posible):

<!doctype html> <html> <head> <meta charset="utf-8"> <title></title> <script src="jquery.js"></script> <script> $(function () { $("#click").click(function () { var txt = $(''#high-unicode'').text(); var codes = ''''; for (var i = 0; i < txt.length; i++) { if (i > 0) codes += '',''; codes += txt.charCodeAt(i); } alert(codes); }); }); </script> </head> <body> <span id="click">click</span><br /> <span id="high-unicode">&#x1D465;<!-- mathematical italic small x -->&#xF31E0;<!-- some char from Supplementary Private Use Area-A -->A<!-- char A -->&#x108171;<!-- some char from Supplementary Private Use Area-B --></span> </body> </html>

En lugar de "55349,56421,56204,56800,65,56288,56689", ¿es posible obtener "119909,995808,65,1081713"? He leído más-utf-32-aware-javascript-string y Q: ¿Cuál es el algoritmo para convertir de UTF-16 a códigos de caracteres? + P: ¿No hay una forma más sencilla de hacer esto? de unicode.org/faq/utf_bom , pero no estoy seguro de cómo usar esta información.