2008年06月12日 02:00 [Edit]
javascript - 文字を確実に表示する
<BR> on LF
種明かしは、こちら。
(function(){
var str2unicode = function(str){
var uni = [];
for(var i = 0, l = str.length; i < l; i++){
var ord = str.charCodeAt(i);
if (0xD800 <= ord && ord < 0xDC00){ // surrogate pair
ord = 0x10000 + (ord - 0xD800) * 0x400
+ (str.charCodeAt(++i) - 0xDC00);
}
uni[uni.length] = ord;
}
return uni;
};
var base_uri = 'http://www.unicode.org/cgi-bin/refglyph?24-';
var $E = function(tag){ return document.createElement(tag) };
render_glyph = function(str, dom, lf2br){
dom.innerHTML = '';
var uni = str2unicode(str);
for (var i = 0, l = uni.length; i < l; i++){
var hex = uni[i].toString(16);
var img = $E('img');
img.alt = img.title = 'U+' + hex;
img.src = base_uri + hex;
dom.appendChild(img);
if (lf2br && uni[i] == 10) dom.appendChild($E('br'));
}
}
})();
見ての通り、
のglyph表示をそのまま使っています。
#Unicode.orgに怒られちゃうかな...その時はその時。
工夫のしどころは、Surrogate Pairの扱いぐらいですかね。
Enjoy!
Dan the JavaScripting Unicoder
See Also:
Posted by dankogai at 02:00│Comments(0)│TrackBack(0)
この記事へのトラックバックURL
この記事へのソーシャルブックマーク

