2010-06-22 7 views
0

내 코드에 Unicode을 사용하고 싶습니다. 내 유니 코드 값은 0100이고 유니 코드 문자열 \u을 내 값에 추가합니다. 문자열 myVal="\u0100"을 사용하면 작동하지만 아래처럼 사용하면 작동하지 않습니다. 값은 "\\u1000";입니다. 어떻게 해결할 수 있습니까?C에서 유니 코드 문자열 #

유니 코드 값이 때때로 달라질 수 있으므로 아래처럼 사용하고 싶습니다.

string [email protected]"\u" + "0100"; 

답변

3

여기에는 몇 가지 문제가 있습니다. 하나는 @ "\ u"가 실제로 리터럴 문자열 "\ u"("\ u"로도 표현 될 수 있음)입니다.

다른 문제는 "\ u"가 유효한 문자열이 아니기 때문에 설명하는 방식으로 문자열을 구성 할 수 없다는 것입니다. 컴파일러는 "\ u"(예 : "\ u0100")에 따라 인코딩 된 값을 결정합니다.

.NET의 문자열은 불변이므로 연결 된 예제 (`@ "\ u"+ "0100")로 장면 뒤편에서 무슨 일이 벌어지고 있는지 살펴볼 때 이것은 의미합니다. 무엇 실제로 일어나는 :

  1. 을 문자열 만들기 "\ u는"

그래서 당신은 메모리에 세 개의 문자열이 "0100"

  • 문자열 만들기 "\ u0100을"문자열을 만들기 . 모든 문자열이 유효해야합니다.

    이러한 값을 처리 할 때 가장 먼저 고려해야 할 옵션은 실제로 정수로 구문 분석 한 다음 문자로 변환하는 것입니다. 예 :

    var unicodeValue = (char)int.Parse("0100",System.Globalization.NumberStyles.AllowHexSpecifier); 
    

    단일 유니 코드 문자 값을 제공합니다. 여기에서 문자열에 추가하거나 ToString()을 사용하여 문자열로 변환 할 수 있습니다.

  • +0

    덕분에, 그냥 \ u0100 값을 내 문자열 변수에 할당하려고합니다. 하지만 내 유니 코드 값은이 0100,0200 같은 문자열로 저장됩니다, 난 그냥 \ u를 추가하여 유니 코드로 변경하려면이 \ u0100 내 문자열 변수에 할당해야합니다. 내가 어떻게 할 수 있지. –

    +0

    큰 감사, 그 일하지만, 이것을 설명 할 수 있습니다. \ u를 지정하지 않고 값 0100을 유니 코드로 사용하는 방법 ??? –

    +0

    @deep http://msdn.microsoft.com/en-us/library/x9h8tsay(v=VS.71).aspx 참조하십시오. –

    관련 문제