C# or Javascript 유니코드 변환 소스
"Json" 포맷만으로 타임라인을 이쁘게 그려주는 "timeline.js" 라이브러리를 테스트 중 해당 "Json Data Field" 중 "<headline>" 필드에 들어가는 문자열(한글)을 유니코드로 변환시키는 작업을 진행 하였다.(반드시 문자열(한글)을 유니코드로 변환시켜야 하는것은 아니다.) 또한, 관련한 코드들을 함수로 취합해 블로그에 정리하였다.(초 기억력 감퇴를 위한..;;)
1. 문자열(한글)을 변환한 "트위터 타임라인" JSON Data:(Json Data Field 중 <headline>문자열이 변환(유니코드)되었다.)
http://mohwa.org/html/timeline/tw_timeline.aspx
2. timeline.js 적용 페이지(트위터 타임라인 활용)
http://mohwa.org/html/timeline/storyJS.html
C# 코드:
/// 문자열 --> HTML 정식 유니코드 /// /// ///private string getStringToUnicodeHTML(string str) { StringBuilder ret = new StringBuilder(); string input = str; // 유니코드 문자 배열을 생성한다. char[] values = input.ToCharArray(); foreach (char _char in values) { // 한글 필터링 if (char.GetUnicodeCategory(_char) == System.Globalization.UnicodeCategory.OtherLetter) { // 유니코드 문자 코드 int value = Convert.ToInt32(_char); ret.Append(("&#" + value)); } else { ret.Append(_char); } } return ret.ToString(); } /// /// 문자열 --> 유니코드 /// /// ///private string getStringToUnicode(string str) { StringBuilder ret = new StringBuilder(); string input = str; // 유니코드 문자 배열을 생성한다. char[] values = input.ToCharArray(); foreach (char _char in values) { // 한글 필터링 if (char.GetUnicodeCategory(_char) == System.Globalization.UnicodeCategory.OtherLetter) { // 유니코드 문자 코드 int value = Convert.ToInt32(_char); // 유니코드 16진수 변환 string hex = String.Format("{0:X}", value); ret.Append(("\\u" + hex)); } else { ret.Append(_char); } } return ret.ToString(); } /// /// 유니코드 -->문자열 /// /// ///private string getUnicodeToString(string strs) { string ret = ""; Encoding target = Encoding.UTF8; byte[] bytes = target.GetBytes(strs); ret = target.GetString(bytes); return ret; }
Javascript 코드:
참고 사이트:
한글 인코딩의 이해 1편:
http://helloworld.naver.com/helloworld/19187
한글 인코딩의 이해 2편:
http://helloworld.naver.com/helloworld/76650
16진수 문자열과 숫자 형식 간 변환:
http://msdn.microsoft.com/ko-kr/library/bb311038(v=vs.90).aspx
숫자 결과 형식 지정표
http://msdn.microsoft.com/ko-kr/library/s8s7t687.aspx
유니코드 컨버터
http://rishida.net/tools/conversion/