📂 JS 실습하기/유니코드
문자를 유니코드로 변환하기 🕔 2015. 1. 2.
특수 문자를 입력하면 유니코드(아스키코드)값을 얻을 수 있다.
특수 문자를 입력하시오 :
≦ = ≦
≧ = ≧
⤷ = ⤷
⅍ = ⅍
℻ = ℻
아래 소스는 모질라의 MDN에서 퍼온거다.
html 문서에 삽입되는 아스트랄 문자(non-BMP character)의 length값을 맞춰주는 거란다.
function fixedCharCodeAt(str, idx) { idx = idx || 0; var code = str.charCodeAt(idx); var hi, low; if (0xD800 <= code && code <= 0xDBFF) { hi = code; low = str.charCodeAt(idx + 1); if (isNaN(low)) { throw '에러 사항에 대한 문장을 여기다가 집어넣으라는데...'; } return ((hi - 0xD800) * 0x400) + (low - 0xDC00) + 0x10000; } if (0xDC00 <= code && code <= 0xDFFF) { return NaN; } return code; }
자바스크립트의 charCodeAt에 대해서 알아보다가,
저 코드 한번 가져다 써보겠다고 몇날 며칠을 끙끙댔는지 몰겄다...
구글 뒤져두 몰겄고,,, 지식in에 물어봐두 답이 없구...
뭔 뜻인지는 몰라도 어쨌든 적용은 했으니깐
지금 수준에서는 여기서 만족해야될듯 하다...
아래는, 위 코드를 이 문서에서 써먹은 방법이다.
function ConverterChar(){ var elem = document.getElementById("userChar"); var txt = elem.value; var count = 0; var result = ""; var code = document.getElementById("showCode"); for (count; count < txt.length; count++){ var getFunction = fixedCharCodeAt(txt, count); if (getFunction == NaN) break; var charNum = getFunction; if (count <= 15) { result += '&#' + charNum + ' = ' + '&'+'amp;&'+'num;' + charNum + ';' + '<' + 'br />'; code.innerHTML = result; } else if (count > 15) { code.innerHTML = "문자는 15개까지만 입력하실 수 있습니다."; break; } } return null; }
원래는, result값으로
"&#" + charNum + " = &#" + charNum + ";" + "<br />"; 이라 할랬더니마는,,
소스코드를 텍스트로 태그 안에다가 넣었더니, &와 #을 특수문자로 자동 변환해버린다는...
'JS 실습하기 > 유니코드' 카테고리의 다른 글
“한글 인코딩” 관련 사이트 목록 (0) | 2015.06.24 |
---|---|
[ 자바스크립트 ] 웹주소 쪼개기 2 (0) | 2015.06.08 |
[ 자바스크립트 ] 웹주소 쪼개기 1 (0) | 2015.06.03 |
쓸만한 유니코드 모음 (0) | 2015.01.05 |