Recent posts

Recent comments

Archive

Calender

«   2025/06   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30

특수 문자를 입력하면 유니코드(아스키코드)값을 얻을 수 있다.

특수 문자를 입력하시오 :

≦ = ≦
≧ = ≧
⤷ = ⤷
⅍ = ⅍
℻ = ℻


아래 소스는 모질라의 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 + " = &amp;&num;" + charNum + ";" + "<br />"; 이라 할랬더니마는,,
소스코드를 텍스트로 태그 안에다가 넣었더니, &amp;와 &num;을 특수문자로 자동 변환해버린다는...