ASP.NET 지원 음성 열

이 칼럼의 필요에 맞게 초대 합니다 관심 있는 주제에 대 한 아이디어를 제출 하 고 보려고 하는 문제 해결 기술 자료 문서 및 Support Voice 칼럼 앞으로. 요청에 대해이 양식을 사용 하 여 자신의 생각과 의견을 제출할 수 있습니다. 이 칼럼의 맨 아래에 폼에 대 한 링크가 있습니다.

소개

환영 합니다! Microsoft ASP.NET 개발자 지원 팀과 함께 Sukesh Khare입니다. 이것은 처음 내가 Support Voice 칼럼을 작성 했습니다. 더 열 달 동안 미리 제작을 기다리고 있습니다.

이번 달 칼럼에서는 Active Server Pages (ASP) 및 ASP.NET, ASP, 어떻게 변화가 있었습니다 ASP.NET 1 x는 ASP.NET 2.0 세계화 앞면에 우리가 직면 하는 문제에 대 한 전역화 문제에 설명 하겠습니다.

참고: 이해할 수 없는 용어를 발견할 경우이 칼럼의 맨 아래에 용어 절을 참조 하십시오.

ASP에서 세계화 문제

ASP.NET에서는 이전 글로벌 사용자를 위한 응용 프로그램 개발에 대 한 구조적된 지원 되지 않았습니다. ASP의 초기 개발 하는 동안 개발자가 직접 찾을 같은 흩어져 운영 체제, 브라우저, Asp 및 백 엔드 시스템에 대 한 세계화에 대 한 지원. 그러나 거의 관찰 된 자동 연결 응용이 프로그램에서 합니다. 다행히 우리가 인식할 수 문자 집합, 코드 페이지, 브라우저 언어 및 글로벌 사용자를 위한 응용 프로그램 개발에 대 한 우리를 사용할 수 있는 글꼴이 같은 개념.

ASP.NET에 표시 되는지는 세계화의 모든 문제를 범주로 구분 하기가 어려운 것입니다. 대신 일련의 다양 한 문제에 관련 된 개념을 나열 합니다.

문자 집합 및 코드 페이지

우리는 모두 우리의 컴퓨터 화면에 문자가 일련의 바이트는 알으십시오. 바이트 시리즈 만들고 수 다양 한 방법으로 해석 됩니다. 해석에서는 인코딩을 인코딩 바이트 배열을 사용 하 여 만들어진 것 보다는 다른 해석으로, 표시 됩니다. 문자 집합 (문자)는 브라우저에서 일반적으로 사용 되는 형식을 인코딩하는. 서버 쪽 변환에 더 적용할 수 있으며 코드 페이지 속성을 변환 표가 문자 인코딩 하는 방법을 지정 하는 것입니다.

브라우저 현재 문자 집합에 따라 폼 post 데이터를 인코딩합니다. 현재 문자 집합에서 서버로 전송 되는 바이트 인코딩 "windows 1256" 또한 "windows 1256"가

ASP를 해석 하는 양식 및 Querystring 컬렉션은 코드에서 참조 된 때까지 빌드되지 않습니다. 되 고 빌드될 때, 현재 코드 페이지에 따라 문자열 데이터를 유니코드로 변환 됩니다. (기본적으로 ASP와 ASP.NET 콘텐츠 처리 유니코드 형식을 사용 하 여). 반드시 참조 컬렉션; 하기 전에 올바른 코드 페이지를 설정 하는 그렇지 않으면 메모리에 유니코드 표시 올바른 수 없습니다.

코드 페이지를 설정 하려면 Session.Codepage 또는 Response.Codepage를 사용 합니다. Response.Codepage 은 Microsoft 인터넷 정보 서비스 (IIS) 5.1 또는 이후 버전에서 사용할 수만 있습니다. 정수 값 (에 해당 하는 문자 집합)에 대 한 내용은 다음 Microsoft 웹 사이트를 방문 하도록 이러한 속성 설정 하는 우리가.

문자 집합 인식
http://msdn2.microsoft.com/en-us/library/Aa752010.aspx예를 들어, 아랍어에 대 한 코드 페이지를 설정 하려면 다음 코드를 사용 합니다.

Session.Codepage = 1256

Response.Codepage 현재 응답에만 적용 됩니다. 그러나 Session.Codepage 현재 사용자가 변경한 모든 응답을 영향을 줍니다. 현재 코드 페이지에서이 변경 하면이 이러한 속성 중 하나를 사용 하 여 코드 페이지를 설정 하 고 양식 및 Querystring 컬렉션 내장 메모리에 현재 코드 페이지에 유니코드 변환 Response.Write 메서드. 이 항목에 대 한 자세한 내용은 다음 MSDN 웹 사이트를 방문 하십시오.

문자열에 대 한 코드 페이지 설정 (ASP) 변환http://msdn2.microsoft.com/en-us/library/ms525789.aspx전환할 때 문자에 관련 된 문제에 있어 코드 페이지가 해당 클라이언트 charset 되 고 서버 코드 페이지와 일치 해야 합니다.

언어를 적용 합니다.

ASP 개발자를 사용자가 자신의 브라우저에서 설정한 언어를 파악 하고자 하는 경우 개발자는에서 해당이 언어를 표시 하려는 사용자는 우선 순위 및 읽기 응답 (예: 영어, 독일어 또는 인도양), 사용자가 원하는 언어 목록의 찾을 Request.ServerVariables ("유일") 변수를 사용할 수 있습니다. ASP.NET에서는 배열 유사한 정보 Request.UserLanguages 속성에는.
ASP 코드에서이 정보를 사용 하는 방법에 대 한 자세한 내용은 Microsoft 기술 자료의 다음 문서 번호를 클릭 합니다.

229690 브라우저의 언어 설정 당 ASP 로케일 ID를 설정 하는 방법

Internet Explorer 설정 하는 멀티 바이트 문자를 표시 합니다.

멀티 바이트 문자 집합을 표시할 수 있는 유일한 인코딩 형식을 유니코드 (utf-8)입니다. U t F-8을 사용 하 여 키릴 자모, 인도양, 및 일본어 표시할 수 우리가 모두 같은 페이지에 있습니다. U t F-8을 사용 했습니다 우리 수만이 언어 중 하나로 한 번에 표시 합니다. 브라우저의 문자 집합을 설정 하려면 Response.CharSet 속성을 사용 합니다.

페이지에서 정적 멀티 바이트 문자

페이지에 직접 저장 하는 멀티 바이트 문자를 표시 하려면 특정 인코딩을 사용 하 여 먼저 페이지를 저장 해야 했습니다. U t F-8 좋은, 하지만 특정 코드 페이지 (문자 코드 페이지와 일치)도 작동 함.

Microsoft Visual InterDev를 사용 하 여 ASP 파일을 저장 해도 도움이 되지, Visual InterDev 영어 ANSI 또는 유니코드 저장할 수 있기 때문입니다. ASP에서 유니코드를 지원 하지 않는 저장 된 ASP 페이지입니다.

Microsoft Visual Studio.net에서에서 모든 인코딩 파일을 저장할 수 있습니다. 두 가지 방법으로이 작업을 수행 합니다. 끝은 사용자에 대 한 현재 코드 페이지를 사용 하 여 파일을 저장 하려면 인코딩을 사용 하 여 파일을 저장 하는 또 다른 방법은 아래와 같습니다.
파일 메뉴에서 다른 이름으로 파일 저장을 클릭 합니다. 안에
다른 이름으로 파일 저장 대화 상자에서 드롭 다운 화살표를 클릭 합니다 있는
저장 단추입니다. 화살표를 클릭 하면 옵션을
저장 하 고 인코딩하여 저장합니다. 클릭할 때
인코딩하여 저장저장 고급 옵션 대화 상자의 코드 페이지가 컴퓨터에 설치 되어 있는 목록에서 적용할 수 있는 인코딩 유형을 선택할 수 있는 나타납니다.


참고: 이 인해 파일의 인코딩을 변경 작업을 한 번만에. 다음 저장을 기본값으로 다시 설정 됩니다.

기본 코드 페이지를 변경 하려면 저장 고급 옵션 을 클릭 하면
파일 메뉴를 엽니다. 저장 고급 옵션 대화 상자에서 저장 사용자가 선택한 코드 페이지를 작업에 대 한 기본 인코딩을 설정할 수 있습니다.

이러한 메서드는 디스크에 파일을 저장할 방법을 관련이 있습니다. 그러나에서 설명한 대로 ASP에 대 한 출력 제어 해야 Session.CodePage 및 Response.CharSet 속성을 설정 합니다. IIS 5.1 이상 버전을 사용 하 여 Response.CodePage 속성에도 사용할 수 있습니다.

서버의 기본 코드 페이지

기본 로케일 및 페이지에 대 한 기본 코드 페이지에 대 한 레지스트리 설정을 사용 하면 됩니다. 기본 사용자입니다. 레지스트리 하이브 HKEY_USERS\에 국제 키를 찾을 수 있습니다. DEFAULT\Control Panel\International. IIS에서 선택 된 로케일의 동작을 변경할 수도 우리. 자세한 내용은 다음 기술 자료 문서의 "IIS 5.0" 섹션을 참조 하십시오.

306044 Active Server Pages 액세스 동작의 날짜/시간 형식이 달라 집니다.

로그온된 한 사용자가 동일한 로케일으로 위 키나 시스템 기본 설정, 사용자 설정이 우선 합니다.

예: 기본 로케일 로그온된 한 사용자 (와 같은 로캘 설정) 하는 동안 11.1.2004로 형식 집합에는 2004 년 11 월 1 일으로 날짜 형식으로 날짜를 있습니다. 2004 년 11 월 1 일 설정을 ASP에 적용 됩니다.

(ASP.NET, 이렇게 다를 수 있습니다. 일부 설치에서는 ASPNET 사용자 로드 되는 경우 HKEY_USERS 아래에서 표시 하는 자체 프로 파일을 해야 합니다. 사용할 다른 사람에. 기본 프로필입니다. < % @ % > 선언에도 코드 페이지 특성을 사용할 수 있습니다. 이 다른 인코딩을 다음 코드 페이지 932 (일본어) 등은 기본으로 파일을 저장 하는 경우)

글꼴 변환 문제에 대 한 코드 페이지 문제: 되는?

시간에 물음표 (?) 문자 또는 문자 표시 되어 있는 상자를 볼 수 있습니다.

코드 페이지 변환 문제

문자는 물음표 (?) 문자로 대체 하는 경우 코드 페이지 변환 문제는 발생 했음을 나타내는 값입니다. 물음표 (?) 코드 페이지 변환에 대 한 기본 문자 이며 기본적으로 운영 체제는 문자 값을 처리 하 고 변환 하는 방법을 알지 못하므로 것을 의미 합니다. 물음표 (?) 문자 값을 대체 합니다. 이 문자는 코드 페이지에 대 한 잘못 된 값 이나 변환에 필요한 코드 페이지가 설치 되어 있지 않음을 의미 합니다.

글꼴 변환 문제

문자 상자로 바뀌면 이것은 글꼴 변환 문제는 발생 했음을 나타냅니다. 이것 경우 클라이언트 쪽에서 클라이언트에 올바른 글꼴이 설치이 문자를 제대로 표시할 수는 없습니다. 예를 들어, 일본어 문자 집합을에서 문자 이며 클라이언트 일본어 글꼴이 설치 되어 있지 않습니다를 일본어 문자가 상자로 표시 됩니다.

다음으로 내가 것에서 작업을 변경 하는 방법을 ASP.NET 1.x 및 수정 사항을 컨텍스트에서 ASP.NET 전역화 문제에 미치는 영향.

전역화 문제에 ASP.NET 1.x:

ASP.NET을 사용 하 여 세 가지 엄청난 일 도입 되었습니다.

  • Web.config 파일에서 < 세계화 > 태그
    < 세계화 > 태그는 모순 된 개념의 코드 페이지와 문자 밖에 있습니다 우리 대부분의 ASP.NET 내에서 변형 제어 합니다.

  • System.Globalization 네임 스페이스
    세계화 네임 스페이스 세계화 처리의 프로그래밍 기능을 제공 합니다.

  • 리소스 파일의 개념은 크게 향상 되었습니다.
    ASP에서 사용 하는 방식으로 리소스 파일을 처리 하지 않습니다. 이제 런타임에 조합으로 존재 하 고 디자인 하 고, 개발 리소스 파일에서 XML 파일의 형태로 됩니다.

전역화 구성 태그:

태그의 두 가지 중요 한 설정은 아래와 같습니다.

<globalization             requestEncoding="utf-8" 
responseEncoding="utf-8" />

다른 가능한 설정 영역은 다음과 같습니다.

fileEncoding

기본.aspx,.asmx 및.asax 파일 구문 분석에 대 한 인코딩을 지정 합니다. (서명)으로 바이트 순서 표시 접두사를 사용 하 여 저장 된 유니코드 및 utf-8 파일은 자동으로 인식, fileEncoding값에 관계 없이.

문화권

(해당 클래스의 메서드는 System.Globalization 네임 스페이스) 들어오는 웹 요청을 처리 하기 위한 기본 culture를 지정 합니다.

uiCulture

로캘 종속 리소스 검색 (위성 어셈블리)를 처리 하기 위한 기본 culture를 지정 합니다.

Culture 문자열 ( culture 및 uiculture값)에 대 한 자세한 내용은 다음 Microsoft 웹 사이트를 방문 하십시오.

System.Globalization.CultureInfoClass
http://msdn2.microsoft.com/en-us/library/system.globalization.cultureinfo(vs.71).aspx응답이 완료 된 후와 요청이 응용 프로그램에 전달 되기 전에 이러한 설정은 ASP.NET에 의해 적용 됩니다. ResponseEncoding, 버퍼 출력을 저장 하기 위해 작성 된이 인코딩으로 설정 됩니다. 이 버퍼에 들어가는 모든 인코딩할 설정에 따라 버퍼에 삽입 됩니다.

런타임은은 requestEncoding을 위한 요청 읽고이이 섹션의 설정에 따라 해석 합니다. 그러나 문제를 일으킬 수 있는 설정입니다. 다음 표에서 유효한 utf-8 바이트 시퀀스의 비트 레이아웃입니다.

문자 값을 표준 ASCII 7 비트에서 떨어지면, 바이트 값이 수정 되지 않습니다. 값 127이 넘는 경우 다음 규칙은 따라야 합니다. 선행 비트 집합 시퀀스의 문자 수를 표시 합니다. 첫 번째 첫 번째 비트를 사용 하 여 시작 해야 합니다 후 각 바이트를 1로 설정 합니다.

U t F-8 레이아웃.

바이트

비트

표현

1

7

0vvvvvvv

2

11

110vvvvv 10vvvvvv

3

16

1110vvvv 10vvvvvv 10vvvvvv

4

21

11110vvv 10vvvvvv 10vvvvvv 10vvvvvv

이 문제는 위치입니다. 브라우저에서 요청 (예: iso-8859-1) 싱글바이트 인코딩에 따라 인코딩합니다, 127 보다 큰 값은 위의 레이아웃에 따라 올바른 됩니다. U t F-8 버퍼로 읽을 때 잘못 된 문자가 출력에서 간단 하 게 삭제 됩니다.

런타임 인코딩 변경

Application_BeginRequest 이벤트에서 requestEncoding의 값을 수정 하 고 요청이 처리 되기 전에 적용 되도록 할 수 있습니다. Page_PreRender 이벤트는 응답에 대 한 출력의 인코딩을 수정 하는 마지막 기회입니다. 또한 참고로 부르는 것, Response.Write 는이 버퍼에 문자를 넣을 것 해야 Response.Write를 사용 하기 전에 올바른 인코딩 집합을가지고 있습니다.

원래 데이터는 비 유니코드: 여전히 Internet Explorer 멀티 바이트 문자를 해석 하는 방법?

우리가 해야 하는 경우 ASP 처럼 작동 하는 ASP.NET 축소할 수 있습니다. 조건을 충족 하기 위해, 우리 하려면 responseEncoding 및 requestEncoding windows-1252 (는 완벽 하 게 인코딩 보다 iso-8859-1)로 설정 하 고 텍스트를 올바르게 표시 하려면 Response.Charset 속성을 사용 합니다. 이 방법이 windows-1252 싱글바이트 인코딩 체계 이며 버퍼에 추가 된 모든 바이트를 수정 하지는 않습니다. 따라서 더블 바이트 문자를 일련의 단일 바이트 전송 됩니다. 그런 다음 Internet Explorer Response.Charset 속성을 사용 하 여 바이트를 해석 하는 방법을 알 수 있습니다 우리. 이 경우 원래 데이터는 COM 개체의 반환 값과 같은 유니코드 또는 u t F-8로 저장 되지 않습니다 또는 데이터 (예: varchar) 비 N 필드에 Microsoft SQL Server 저장 된 경우에 필요할 수 있습니다.

SQL Server 및 ASP.NET 전역화 문제

SQL Server 대 한 유니코드 데이터 입력

SQL Server 데이터를 저장 하는 가장 좋은 방법은 유니코드를 사용 하는 것. 우리가 사용할 유니코드 데이터의 최소 가능성도 없는 경우 삽입, 업데이트 등을 N 값을 추가 해야 합니다. 이렇게 하면 데이터베이스가 유니코드입니다. 이것의 좋은 예로 ADO 개체입니다. 이때 자동으로 새 레코드를 추가한 Recordset 개체를 사용 합니다.

다음은 예입니다.

INSERT INTO MusicAlbum (Album_ID, [Year], Name, Artist_ID, Company_ID) VALUES (12345, 2005, N'Abida', 4653, 403)Or:
Dim t As String = "INSERT INTO MusicAlbum(Album_ID, [Year], Name, Artist_ID, Company_ID) VALUES (12345, 2005, N'" & TextBox1.Text & "', 4653, 403)"

날짜/시간 SQL Server 대 한 입력

일반적으로 문화권 및 로캘 인식 ASP.NET 응용 프로그램 내에서 날짜/시간에 대 한 지식을 했습니다. 그러나 밀어넣기 및 날짜/시간 데이터를 끌어오기 외부 원본에서 하는 동안 우리가 위험이 날짜/시간 형식을 잘못 해석 합니다. 즉, 항상 고 문화권과 로캘에 외부 소스 응용 프로그램에서와 동일 하 게 보장할 수는 없습니다. ' 현재 언어'를 사용 하 여 해결할 수 이러한 SQL Server SQL 데이터베이스에 설정 하려는 연결의 연결 문자열 에 대 한 특성입니다. 응용 프로그램의 문화권은 connectionstring 의 동일한 언어 설정이 수 제공 합니다. 이렇게 우리를 잘못 해석의 위험 으로부터 SQL Server 항상 수락 하 고 동의 위에서 언급 한 설정 사용 하 여 날짜/시간 데이터를 전송 하기 때문에.

System.Globalization 네임 스페이스

이 네임 스페이스는.NET Framework 지역화 및 세계화의 핵심입니다. 이 네임 스페이스에 사용 되는 주 클래스는 CultureInfo 클래스입니다. 날짜/시간 형식, 숫자 서식, 비교 정보 및 텍스트 정보 등의 문화권 관련 정보를 보유 합니다. CultureInfo 클래스에 대 한 자세한 내용은 다음 MSDN 웹 사이트를 방문 하십시오.

http://msdn2.microsoft.com/en-us/library/system.globalization.cultureinfo(vs.71).aspxCultureInfo

중립 문화권 및 특정 문화권

중립 culture는 언어를 하지만 아닌 특정 국가 또는 지역에 연관 된 문화권. 특정 문화권은 언어와 특정 국가 관련.

예: (중립 문화권) "DE"는 독일어를 하지만 "DE-AT" (특정 culture) 독일어에도 오스트리아에서 사용 되는. 중립 문화권은 서식 지정에 사용할 수 없습니다.

.NET Framework 클래스의 현재 스레드 및 문화권 인식

모든 클래스 및 culture에 종속 된 것으로 출력은 기대할.NET Framework 라이브러리의 내장 비헤이비어를 두 가지 있습니다.

  • 우리 문화권 코드 출력이 지정 된 culture에 기반 하 여 인수를 제공 하는 동안 지정할 수 있습니다. 이것은 선택 사항입니다.

  • 이 이루어지지 않은 경우 (일반적으로 이면) 클래스는 속성 Thread.CurrentThread.CurrentCulture 과 하는 작업에 대 한 검사를 유지할 만한 지식도.

우리 다음과 유사한 코드를 사용 하 여이 속성의이 값을 수정할 수 있습니다.

    Dim ci As CultureInfo        ci = New CultureInfo("de-AT")
Thread.CurrentThread.CurrentCulture = ci

이 코드 예제에서는 "de"는 독일어를 나타내며 "AT" 오스트리아. 따라서이 경우 DateTime.Now(). ToString 메서드는 반환 된 날짜와 시간에 해당 하는 형식 방식을 오스트리아에서 독일어에서 날짜와 시간이 표시 됩니다.

프레임 워크에서는 CurrentCulture 속성은 항상 초기화 (다음과 같이).

  1. 어떤 설정 프로그래밍 방식으로.

  2. 속성은 구성 파일에서 선택 되었습니다 경우 명시적으로 프로그래머가 설정 되지 않은 경우 (< 세계화 > 태그).

  3. 속성이 없는 경우에 웹 서버가 실행 되 고 있는 culture를. 일반적으로 운영 체제의 언어에 해당 하는 중립 문화권입니다.

리소스 파일

모든.resx,.resource 파일 및 Visual Studio.NET에서 ASP.NET 프로젝트에 추가 되는 포함 리소스 로 설정 된 빌드 작업 특성을 갖는 파일 자동으로 컴파일하고 일부로 해당 매니페스트는 응용 프로그램 어셈블리에 포함 합니다. 심지어 이렇게 수동으로 Visual Studio.NET 명령 프롬프트를 통해 리소스 파일 생성기 (RESGEN) 유틸리티를 사용 하 여. 자세한 내용은 다음 MSDN 웹 사이트를 방문 하십시오.

http://msdn2.microsoft.com/en-us/library/ccec7sz1(vs.71).aspx세계화와 관련이 없는 응용 프로그램의 리소스를 관리 해야 할 때마다 적용 되는 일반 개념입니다. 그러나 우리가 세계화를 구현 하는 위성 어셈블리를 사용 해야 했습니다.

위성 어셈블리

위성 어셈블리는 다음과 같은 확인 하는 경우 ASP.NET 프로젝트에서 사용할 수 있습니다.

  1. 모든 aspx 파일에서 모든 사용자 인터페이스 요소 id 및 runat 장착 하는 데 필요한 서버 특성 =.

  2. 우리는 별도.resx 파일을 만듭니다. 우리가 원하는 응용 프로그램을 지 원하는 각 문화권 마다 일치 해야 합니다.

  3. 예: '문자열'에 대 한 모든이 파일에 대 한 일반적인 이름 결정 해야 했습니다.

  4. 다음과 같은 명명 규칙 commonfirstname. languagecode-지역 번호.resx로 별도.resx 파일 이름을 (예: Strings.en GB.resx Strings.de-AT.resx).

  5. 리소스 파일 해야
    commonfirstname.resx (Strings.resx) 문자열 원하는 표시 기본값은 모두입니다.

  6. 검색 사용자의 culture에 일치 하도록 Thread.CurrentThread.CurrentUICulture 속성을 설정 하는 코드를 작성 합니다.

  7. ResourceManager 클래스를 사용 하 여 리소스를 로드 하는 코드를 작성 합니다.

  8. 로드 된 개체에서 문자열을 추출 하는 코드를 작성 하 고 사용자 인터페이스 요소에 할당 합니다.

이러한 단계를 수행한 경우 Visual Studio.NET Strings.resx 컴파일하고 응용 프로그램 어셈블리 (MyGlobalizationTestProjectName.dll)에 포함 됩니다. 그러나 다른 모든.resx 파일에 대 한 별도 dll 파일이 있는 것이 실행 코드가 아니라 데이터 자원에만 생성 됩니다. 실제로이 위성 어셈블리 라고 부릅니다. 또한 Visual Studio.NET 환경 폴더 구조에 따라이 다음과 유사한:MyGlobalizationTestProjectName |------- bin
|------en-US
MyGlobalizationTestProjectName.resources.dll
|------ja-JP
MyGlobalizationTestProjectName.resources.dll
|------de-AT
MyGlobalizationTestProjectName.resources.dll

정하도록 차이점

System.Globalization 네임 스페이스에 클래스의 메서드에 출력을 제공 하는 Thread.CurrentThread.CurrentCulture 속성에 따라 다릅니다, 하지만 리소스 어셈블리를 로드 하는 ResourceManager 클래스 적절 한 위성 어셈블리를 로드 하는 Thread.CurrentThread.CurrentUICulture 속성에 따라 달라 집니다. 다음은 C# 코드 예제입니다.

using System.Globalization;using System.Threading;
using System.Resources;

//Load resources.
protected ResourceManager gStrings = new ResourceManager("MyGlobalizationTestProjectName.strings", typeof(MyTestWebFormName).Assembly);

// Get the user's preferred language.
string sLang = Request.UserLanguages[0];
// Set the thread's culture for formatting, comparisons, etc.
Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(sLang);
// Set the thread's UICulture to load resources
// from satellite assembly.
Thread.CurrentThread.CurrentUICulture = new CultureInfo(sLang);

private void Page_Load(object sender, System.EventArgs e)

{

if (!IsPostBack)

{
// Get strings from resource file and assign to UI elements.
head1.InnerHtml = gStrings.GetString("satellite.head1");
p1.InnerHtml = gStrings.GetString("satellite.p1");
sp1.InnerHtml = gStrings.GetString("satellite.sp1");
sp2.InnerHtml = gStrings.GetString("satellite.sp2");
butOK.Text = gStrings.GetString("satellite.butOK");
butCancel.Value = gStrings.GetString("satellite.butCancel");
}

}

ASP.NET 위성 어셈블리를 선택 하는 순서:

스레드의 CurrentUICulture를 설정 하면 ASP.NET 자동으로 일치 하는 리소스는 다음과 같은 순서로 선택:

  • 위성 어셈블리가 일치 하는 culture를 사용 하 여 경우에 해당 어셈블리의 리소스가 사용 됩니다.

  • 위성 어셈블리가 중립 문화권 리소스와 일치 하는 경우에 해당 어셈블리의 리소스가 사용 됩니다.

  • 리소스에 대 한 일치 하는 항목이 없는 경우 실행 가능한 어셈블리에 저장 된 대체 리소스가 사용 됩니다.

참고: 이것은 보다 일반적인 리소스 대체 프로세스 기반으로 합니다. 자세한 내용은 다음 MSDN 웹 사이트를 방문 하십시오.

http://msdn2.microsoft.com/en-us/library/sb6a8618(vs.71).aspx

위성 어셈블리를 수동으로 만들기:

이러한 위성 어셈블리를 사용이 하는 Visual Studio.NET에서 어셈블리가 생성 자체입니다. 그러나 Visual Studio.NET 하지 않는 위성 어셈블리에 강력한 이름을 기본적으로. 이러한 옵션을 변경 하려면 위성 어셈블리를 수동으로 만들 해야 합니다. 자세한 내용은 다음 MSDN 웹 사이트를 방문 하십시오.

http://msdn2.microsoft.com/en-us/library/21a15yht(vs.71).aspx.

도대체 뭐가 ASP.NET 2.0 세계화에?

ASP.NET 및 ASP.NET 2.0의 전역화 기능에 대 한 생각 되는 문제 종류의 광범위 한 사용 일부 거리를 계속 남아 있습니다. 그러나 간단한 웹 응용 프로그램의 전역화 방법론이 관장 하는 방향을 확인 하는 좋은 것입니다.

ASP.NET 2.0의 세계화 지원에 근본적인 변화 되었습니다와 웹 개발자가 웹 응용 프로그램의 지역화를 Windows 기반 응용 프로그램으로 쉽게 만들 수 있는 기능 제공 되었습니다. 다음은 ASP.NET 2.0의 세계화 방법의 기초가 되는 기능의 목록입니다.

강력한 형식의 리소스 .NET Framework 2.0의 핵심 릴리스 Intellisense를 사용 하 여 개발자에 게 제공 하는 강력한 형식의 리소스에 대 한 지원은 하 고 런타임에 리소스에 액세스 하는 데 필요한 코드를 단순화 합니다.

관리 리소스 편집기 Visual Studio.NET 2.0 만들고 문자열, 이미지, 외부 파일 및 기타 복합 형식 포함 리소스 항목을 관리 하기 위한 더 나은 지원 사용 하 여 새 리소스 편집기를 포함 합니다.

Web Forms에 대 한 리소스 생성 Windows Forms 개발자는 자동 국제화의 장점을 이미 되셨기를. 이제 Visual Studio.NET 2005 Web Forms, 사용자 컨트롤 및 마스터 페이지에 대 한 리소스를 자동으로 생성 하 여 신속한 국제화를 지원 합니다.

향상 된 런타임 지원 ResourceManager 인스턴스는 런타임에서 관리 하 고 쉽게 프로그래밍 인터페이스를 통해 서버 코드에 쉽게 액세스할 수 있습니다.

지역화 식 웹 페이지에 대 한 최신 선언적 식은 컨트롤 속성, HTML 속성 또는 정적 콘텐츠 영역에 리소스 항목을 매핑 지원 합니다. 이러한 식을 확장할 수 있는 HTML 출력에 지역화 된 콘텐츠를 연결 하는 과정을 제어 하는 다른 방법을 제공할 수도 있습니다.

자동 culture 선택 각 웹 요청에 대 한 culture 선택을 관리 브라우저 기본 설정에 자동으로 연결 된 수 있습니다.

리소스 공급자 모델 이러한 리소스에 액세스 하기 위한 프로그래밍 모델의 일관성을 유지 하는 동안 새로운 리소스 공급자 모델 개발자를 플랫 파일 및 데이터베이스 테이블과 같은 대체 데이터 원본의 리소스를 호스트 수를 수 있습니다.

ASP.NET 2.0의 세계화 방법론에 대 한 자세한 내용은 다음 MSDN 웹 사이트를 방문.

웹 응용 프로그램의 지역화에 대 한 새로운 접근법 ASP.NET 2.0 지역화 기능:
http://msdn2.microsoft.com/en-us/library/ms379546(VS.80).aspx

결론

모든 ASP 및 ASP.NET 전역화 문제에 대 한 현재. 이 문서는 Microsoft 기술 지원 서비스에 문의 하 여 선택 하기 전에 ASP 및 ASP.NET 전역화 문제 들을 해결 하는 몇 가지 고객 도움이 됩니다 바랍니다. 내가 생각 한 다음 종료 됩니다.

"개발 하는 장소와 때마다, 전세계 지원 수 하는 사람들의 수백만 대해 생각 합니다. 솔루션 대비 확인 하십시오! Microsoft의 도구와 기술을 쉽게 국제화. "

우리는 또 다른 흥미로운 주제를 사용 하 여 다음 달에 다시 최신 상태로 유지할.

주셔서 감사.

ASP 및 ASP.NET 전역화 문제에 대 한 자세한 내용은 다음 Microsoft 웹 사이트를 참조 하십시오.

Vbscript에서 GetLocale를
http://msdn2.microsoft.com/en-us/library/5xf99h19.aspx

세계화 단계별 연습
http://msdn.microsoft.com/en-us/goglobal/bb688110

SQL Server IIS 5.0 사용 하 여 동적 웹 응용 프로그램 지역화 글로벌 이동 하십시오.
http://msdn.microsoft.com/msdnmag/issues/01/05/global/default.aspx

전역화를 지원 하기 위해 ASP 기반 웹 사이트를 디자인 글로벌 이동 하십시오.
http://msdn.microsoft.com/msdnmag/issues/0700/localize/default.aspx

315616 IIS의 페이지를는 Active Server Pages 클라이언트 언어를 검색 하는 방법
http://support.microsoft.com/?id=315616

로캘 ID(LCID) 차트
http://msdn2.microsoft.com/en-us/library/0h88fahh.aspx

System.Globalization 네임 스페이스
http://msdn2.microsoft.com/en-us/library/system.globalization(vs.71).aspx

리소스 및 지역화 된.NET Framework SDK를 사용 하 여
http://msdn2.microsoft.com/en-us/library/aa309421(VS.71).aspx

ASP.NET 응용 프로그램의 리소스
http://msdn2.microsoft.com/en-us/library/1ztca10y(vs.71).aspx

< 세계화 > ASP.NET 구성 요소
http://msdn2.microsoft.com/en-us/library/hy4kkhe0(vs.71).aspx

디자인 및 구현 지침 웹 클라이언트 전역화 및 지역화에 대 한
http://msdn2.microsoft.com/en-us/library/ms978628.aspx

글로벌 개발과 컴퓨팅 포털 공식 Microsoft 사이트-
http://msdn.microsoft.com/en-us/goglobal/bb688096

지역화 대비 응용 프로그램 개발
http://msdn2.microsoft.com/en-us/library/h6270d0z(vs.71).aspx

ASP.NET의 전역화 아키텍처
http://msdn2.microsoft.com/en-us/library/aa478974.aspx

지역화 된 Microsoft ASP.NET 응용 프로그램을 개발 하기 위한 엔터프라이즈 지역화 Toolkit-
http://msdn2.microsoft.com/en-us/library/aa479334.aspx

Microsoft 입력 체계
http://www.microsoft.com/typography/default.mspx

지역화 된 리소스에 액세스 하려고 하면 839861 A System.Resources.MissingManifestResourceException 예외 발생

용어집

ANSI 미국 국립 표준 협회를 나타냅니다. 이러한 상황에서는 특정 언어/문자 집합에 대 한 특정 코드 페이지를 나타냅니다. 영어 코드 페이지 (windows 1252) 가장 자주 참조합니다.

ASCII 1 바이트 (또는 7 비트) 인코딩 구성표입니다. 0-127 사이의 문자 표준화 됩니다. 128-255 범위의 ASCII와 표준의 일부가 아닌 확장 됩니다. 이러한 예는 OEM ASCII 차트 상위 범위와 VB ASCII 차트입니다.

문자 집합 문자 데이터를 해석 하는 방법을 브라우저에 게 알려주는 브라우저와 Internet Explorer 주로 사용 되는 설정입니다. 예: Response.charSet = "iso-8859-1."

코드 페이지 변환 테이블 지정 문자 인코딩 방식 (일반적으로 서버 사용)입니다.

세계화 전역화는 디자인 및 문화권, 지역 또는 국가 및 언어 요구의 요구 사항을 충족 시킬 수 있도록 응용 프로그램을 만드는 프로세스입니다. 즉 하 게 지역화할 수 있습니다 나중에 하는 방법으로 응용 프로그램을 디자인 세계화입니다.

로케일/문화권 언어 지역 특정 형식/기본 설정을 포함 하 여, 날짜 및 달력 형식, 시간 형식, 통화 형식, 대/소문자 구분, 정렬 및 문자열 비교 형식을 주소, 전화 번호 서식, 용지 크기, 방향 등을 작성 하는 측정 단위입니다.

LocaleID (LCID) DWORD 값을 지정 된 언어 식별자 및 정렬 id입니다. 날짜/시간 ex 등 서식 지정에 따라 특정 지역의 형식 지정을 사용할 수 있습니다.

지역화 가능성 요구 된 언어/로케일에 대 한 콘텐츠를 제공 하는 응용 프로그램의 기능입니다.

지역화 지역화는 특정 언어 및 로케일에는 사용자 인터페이스를 번역 하는 과정입니다.

멀티 바이트 문자 집합 문자 집합의 문자가 구성 된 일본어 같은 둘 이상의 바이트입니다. U t F-8에도이 범주에 포함 됩니다. (유니코드는 기술적으로이 범주에는 있지만 windows에서 해당 범주에.)

유니코드 2 바이트 인코딩 스키마입니다. Windows는 내부적으로 유니코드를 사용합니다. "W"의 끝에 함수 이름 넣어 Api 유니코드에 맞게 표시 됩니다. 와이드 문자 라고도 합니다. 수 없습니다 웹 응용 프로그램에서 직접 사용할 수 있습니다.

U t F-8 문자 인코딩은 여기서 1 ~ 6 바이트로 한 문자를 나타낼 수 있습니다. Windows의 범위는 1-3 바이트입니다. 웹 응용 프로그램에 대 한 n t 4에서 지원 되지 않습니다.
자세한 내용은 다음 문서 번호를 클릭하여 Microsoft 기술 자료의 다음 문서를 확인하십시오.

175392 UTF8 지원


와이드 문자 집합 유니코드에 대 한 별칭입니다. DBCS (더블 바이트 문자 집합), u c S-2, u t F-16이 라고도 합니다.

언제나 원하는 주제에 대 한 의견을 자유롭게 배달 나중에 열 또는 사용 하 여 기술 자료는
요청에 대 한 그 형태입니다.

추가 도움이 필요하신가요?

기술 향상
교육 살펴보기
새로운 기능 우선 가져오기
Microsoft Insider 참가

이 정보가 유용한가요?

번역 품질에 얼마나 만족하시나요?
사용 경험에 어떠한 영향을 주었나요?

소중한 의견에 감사드립니다.

×