2009-11-02 14 views
0

라틴 문자 (åäö)와 라트비아어 (ā) 문자가 공존해야하는 .NET 사이트에 몇 가지 문제가 있습니다. 데이터베이스에서 나는 내 필드에 nvarcharntext을 사용하고 있는데, 텍스트를 데이터베이스에 직접 입력하면 모든 것이 잘 동작합니다..NET 문자 인코딩 문제

문제는 SQL UPDATE을 수행하는 양식을 사용하여 똑같은 텍스트를 입력 할 때 라트비아어 문자가 비슷한 라틴 문자로 변환되므로 "åäöāē"문자열이 "åäöae"로 저장됩니다.

다른 CodePages으로 조금 시도했지만 원하는 결과를 얻지 못했습니다. 누구든지 어떤 제안이 있습니까? 형태는 당신이 그런 굴림 유니 코드 MS와 같은 유니 코드 글꼴을 사용할 필요가 텍스트 상자 윈도우에 텍스트를 입력 할 때

답변

4

SQL 문에서 db에 값을 유니 코드 값으로 전달합니까?

기본 예제

INSERT YourTable VALUES ('Unicode Value') 

은 다음과 같아야합니다

INSERT YourTable VALUES (N'Unicode Value') 

은 분명히 당신이 매개 변수화 SQL/저장 프로 시저를 사용하고 NVARCHAR로 매개 변수를 정의 권하고 싶습니다,하지만 당신은 무슨 말인지 얻을.

+0

궁금한 점 : 왜 저장 프로 시저를 추천합니까? – cethegeek

+2

요점은 매개 변수화 된 문을 사용하고 있습니다. 개인적으로 저장 프로 시저를 좋아해요 : maintainability, tuneability (코드를 변경/재배치 할 필요 없음), 보안 (기본 테이블에 명시 적 권한을 부여 할 필요가없고 SPROC에 대한 EXECUTE 권한 만) .... – AdaTheDev

0

윈도우 앱

을 형성한다.

웹 페이지

당신이 당신의 응답 코드 페이지로 UTF-8을 사용하고 있는지 확인하십시오. 정확히이 기사에 대한 Microsoft의 위대한 기사 http://support.microsoft.com/kb/893663

UTF-8은 모든 문자를 올바르게 인코딩합니다. DB의 NText 및 NVarChar은 UTF-16 데이터 유형이므로 쿼리 분석기의 데이터를 보면 올바르게 표시 될 수 있습니다. 동적으로 SQL을 구성이라면 SQL에서

, 사용 지 확인하세요 N 접두사 예를 들면,

INSERT INTO TABLE (Name, Number) VALUES (N'MyName', 1) 
1

파이프 라인을 개별적으로 처리하여 진행하십시오.

debugging unicode problems에 대한 내 기사를보고 문제가있는 부분을 진단하십시오. 당신은 문제가보고 될 수 있습니다 장소 : 데이터 표시 데이터베이스

  • 에서 가져 오기 데이터베이스
  • 업데이트 사용자
  • 에서 데이터를 얻기

    • 당신했습니다 가져온

    확인 이 각각 은 독자적으로과 같은 특정 글꼴에 의존하지 않습니다. 기사별로 유니 코드 코드 포인트를 인쇄하십시오.

    아, 어디서나 지정할 수있는 인코딩을 사용하면 모든 것을 인코딩 할 수 있습니다. UTF-8을 제안합니다.

  • +0

    UTF-8은 모든 것을 인코딩 할 수 있지만 올바른 코드 페이지로만 올바르게 표시합니다. – badbod99

    +0

    @ badbod99 : "올바른 코드 페이지"란 무엇을 의미합니까? 인코딩 된 데이터를 디코딩하는 모든 것이 어떤 인코딩이 관련되는지를 알아야합니다 ... 그리고 글리프를 표시하는 경우 글꼴이 정확해야합니다. –

    +0

    맞습니다 :-) 코드 페이지는 UTF-8과 관련이 없습니다. 내 잘못이야. – badbod99