C# or Javascript 유니코드 변환 소스



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/