Bỏ qua để tới nội dung chính
Đăng nhập với Microsoft
Đăng nhập hoặc tạo một tài khoản.
Xin chào,
Chọn một tài khoản khác.
Bạn có nhiều tài khoản
Chọn tài khoản bạn muốn đăng nhập.

ASP.NET hỗ trợ thoại cột

Để tuỳ chỉnh cột này nhu cầu của bạn, chúng tôi mời bạn gửi ý kiến của bạn về chủ đề mà bạn quan tâm và sự cố mà bạn muốn xem trong tương lai gửi bài viết cơ sở kiến thức và hỗ trợ thoại cột. Bạn có thể gửi ý kiến và phản hồi của bạn bằng cách sử dụng mẫu Yêu cầu này . Cũng là liên kết đến biểu mẫu ở cuối cột này.

Giới thiệu

Chào mừng! Đây là Sukesh Khare với nhóm hỗ trợ Microsoft ASP.NET Developer. Đây là lần đầu tiên tôi đã tác giả cột hỗ trợ thoại. Tôi mong muốn tạo thêm các cột trong các tháng tới.

Cột tháng này, tôi sẽ thảo luận các vấn đề toàn cầu hoá Trang chủ hiện hoạt (ASP) và ASP.NET, vấn đề mà chúng tôi gặp phải trong ASP, làm thế nào những điều đã thay đổi trong ASP.NET 1 x là gì với ASP.NET 2.0 mặt toàn cầu hoá.

Lưu ý Nếu bạn gặp một từ bạn không hiểu, hãy xem phần thuật ngữ ở cột này.

Các vấn đề toàn cầu hoá trong ASP

Trước khi ASP.NET, đã không hỗ trợ cấu trúc phát triển ứng dụng cho người dùng chung. Trong quá trình phát triển ban đầu của ASP, nhà phát triển như tự phát hiện chỉ rải rác hỗ trợ toàn cầu hoá trong hệ điều hành, trình duyệt, vân và nền hệ thống. Tuy nhiên, chúng tôi hiếm khi thấy bất kỳ kết nối tự động trên các ứng dụng. May mắn thay, chúng tôi đã hiểu các khái niệm như bộ ký tự, mã trang, trình duyệt ngôn ngữ và phông chữ mà chúng tôi có thể tận dụng phát triển ứng dụng cho người dùng chung.

Nó sẽ là quá khó tách mục tất cả toàn cầu hoá vấn đề của chúng tôi trong ASP.NET đã thấy. Thay vào đó, tôi sẽ liệt kê một loạt các khái niệm liên quan đến một loạt các vấn đề.

Bộ ký tự và codepage

Tất cả chúng tôi biết rằng các ký tự trên màn hình máy tính của chúng tôi chỉ là một loạt các byte. Dòng byte có thể được tạo ra và giải thích trong nhiều cách. Nếu giải thích cách sử dụng một mã hoá khác với mã hóa byte mảng được tạo bằng, việc giải thích sẽ hiển thị như rác. Bộ ký tự (charsets) mã hóa định dạng thường được sử dụng trình duyệt. Nhà Codepage áp dụng cho chuyển đổi phía máy chủ, là chỉ chuyển đổi bảng xác định cách ký tự được mã hoá.

Trình duyệt mã hóa dữ liệu đăng biểu mẫu theo bộ ký tự hiện tại. Nếu hiện tại ký tự "windows-1256," byte truyền đến máy chủ được mã hóa cũng như "windows-1256."

Khi ASP được hiểu, bộ sưu tập mẫu và chuỗi truy vấn được không xây dựng cho đến khi chúng được tham chiếu trong các mã. Khi họ đang được xây dựng, Chuỗi dữ liệu được chuyển tới Unicode theo codepage hiện tại. (Theo mặc định, ASP và ASP.NET xử lý nội dung bằng cách sử dụng định dạng Unicode). Rất quan trọng mà bạn đặt codepage đúng trước khi tham khảo bộ sưu tập; Ngoài ra, bản trình bày Unicode trong bộ nhớ sẽ không chính xác.

Để đặt một codepage, sử dụng Session.Codepage hoặc Response.Codepage. Response.Codepage chỉ có sẵn trong phiên bản Microsoft Internet Information Services (IIS) 5.1 hoặc mới hơn. Để biết thông tin về các giá trị số nguyên (trong đó tương ứng với ký tự) chúng tôi sẽ thiết lập các thuộc tính đến, hãy ghé thăm Web site sau của Microsoft:

Ký tự đặt nhận dạng
http://msdn2.microsoft.com/en-us/library/Aa752010.aspxVí dụ: để đặt codepage đối với tiếng ả Rập, sử dụng mã sau đây:

Session.Codepage = 1256

Response.Codepage sẽ chỉ ảnh hưởng đến phản ứng hiện tại. Tuy nhiên, Session.Codepage sẽ ảnh hưởng đến tất cả các câu trả lời của người dùng hiện tại. Khi codepage được đặt bằng cách sử dụng một trong các thuộc tính và bộ sưu tập mẫu và chuỗi truy vấn được xây dựng, thay đổi codepage hiện tại khiến phương pháp Response.Write để chuyển đổi Unicode trong bộ nhớ để codepage hiện tại. Để biết thêm thông tin về chủ đề này, hãy truy cập vào Web site MSDN sau:

Thiết lập trang mã cho chuỗi chuyển đổi (ASP)http://msdn2.microsoft.com/en-us/library/ms525789.aspxPhần dưới cùng-Line khi nói đến các vấn đề liên quan đến charsets codepage là ký tự mà máy khách và máy chủ codepage phải phù hợp với.

Chấp nhận ngôn ngữ

Nếu một nhà phát triển ASP muốn biết ngôn ngữ mà người dùng đã đặt trong trình duyệt của mình, các nhà phát triển có thể sử dụng biến Request.ServerVariables ("HTTP_ACCEPT_LANGUAGE") để tìm danh sách các ngôn ngữ mà người dùng muốn đọc phản ứng, (chẳng hạn như tiếng Anh, tiếng Đức hoặc Ấn Độ) và thứ tự ưu tiên người dùng muốn xem các ngôn ngữ. Trong ASP.NET, thông tin tương tự có trong nhà Request.UserLanguages như là một mảng.
Để biết thêm thông tin về cách sử dụng thông tin này trong ASP mã, hãy bấm vào số bài viết sau để xem bài viết trong cơ sở kiến thức Microsoft:

229690 làm thế nào để đặt ASP ID ngôn ngữ cho cài đặt ngôn ngữ của trình duyệt

Hiển thị nhiều byte ký tự đặt trong Internet Explorer

Chỉ định dạng mã hoá có thể hiển thị nhiều byte ký tự là Unicode (UTF-8). UTF-8, chúng tôi có thể hiển thị Cyrillic, Ấn Độ và Nhật bản trên cùng một trang. Nếu không sử dụng UTF-8, chúng tôi có thể chỉ hiển thị các ngôn ngữ một lúc. Để đặt ký tự của trình duyệt, sử dụng thuộc tính Response.CharSet .

Tĩnh đa ký tự byte trên trang

Để hiển thị đa ký tự byte được lưu trữ trực tiếp trong trang, đầu tiên chúng tôi phải lưu trang bằng mã hoá cụ thể. UTF-8 sẽ tốt nhất, nhưng một codepage cụ thể (phù hợp với codepage vật) sẽ hoạt động như vậy.

Lưu tệp ASP sử dụng Microsoft Visual InterDev không giúp, vì InterDev hình ảnh chỉ có thể lưu Anh ANSI hoặc Unicode. Bất kỳ trang ASP lưu như Unicode không được hỗ trợ bởi ASP.

Trong Microsoft Visual Studio .NET, bạn có thể lưu tệp trong bất kỳ mã hoá. Có hai cách để thực hiện việc này. Mặc định là cách lưu tệp bằng codepage hiện tại cho người dùng. Một cách khác để lưu tệp bằng một mã hoá là như sau:
Trên menu tệp , bấm vào Lưu tệp dưới dạng. Trong các
Lưu tệp dưới dạng hộp thoại, bấm hộp thả xuống mũi tên trên các
Lưu nút. Khi bạn bấm vào mũi tên, các tuỳ chọn là
Lưulưu với mã hoá. Khi bạn nhấp vào
Với mã hóa, hộp thoại Lưu tùy chọn nâng cao xuất hiện khi bạn có thể chọn loại mã hoá mà bạn muốn áp dụng một danh sách codepage được cài đặt trên máy tính.


Lưu ý Thay đổi mã hoá cho lưu hoạt động, nhưng là chỉ một lần. Tiếp theo lưu sẽ được đặt lại mặc định.

Để thay đổi codepage mặc định, bấm Lưu tùy chọn nâng cao trên các
Menu tệp . Trong hộp thoại Lưu tùy chọn nâng cao , bạn có thể đặt các mã hoá mặc định để lưu hoạt động codepage lựa chọn của bạn.

Các phương pháp liên quan đến cách tệp được lưu trên đĩa. Tuy nhiên, kiểm soát đầu ra cho ASP, như đã được thảo luận, chúng ta cần đặt thuộc tính Response.CharSet và Session.CodePage . IIS 5.1 và phiên bản mới hơn, chúng tôi có thể sử dụng thuộc tính Response.CodePage .

Mặc định CODEPAGE trên máy chủ

Vị trí mặc định và codepage mặc định cho trang web phụ thuộc vào các thiết đặt đăng ký vào. Người dùng mặc định. Chúng tôi có thể tìm thấy chính quốc tế tại Trung tâm đăng ký HKEY_USERS\. DEFAULT\Control Panel\International. Chúng tôi cũng có thể thay đổi hành vi của ngôn ngữ được chọn của IIS. Để biết thêm thông tin, hãy xem phần "IIS 5.0" trong bài viết cơ sở kiến thức sau:

306044 chế độ ngày/giờ định dạng khác khi truy cập trang chủ hoạt động

Nếu người dùng đã đăng nhập có vị trí tương tự đặt phím trên hoặc mặc định hệ thống, cài đặt người dùng sẽ được ưu tiên.

Ví dụ: Các ngôn ngữ mặc định có ngày định dạng như 11.1.2004, trong khi người dùng đã đăng nhập (với cùng một ngôn ngữ) có định dạng ngày là 11/1/2004. Thiết lập 11/1/2004 sẽ có hiệu lực cho ASP.

(Cho ASP.NET, điều này có thể thay đổi. Trong một số cài đặt, người dùng aspnet sẽ phải riêng hồ sơ sẽ xuất hiện trong HKEY_USERS khi nó được tải. Những người khác, nó sẽ sử dụng máy. Hồ sơ mặc định. Chúng tôi cũng có thể sử dụng thuộc tính codepage tuyên bố < % @ % >. Điều này sẽ được sử dụng khi tệp được lưu bằng một khác mã hoá rồi mặc định, chẳng hạn như codepage 932 (tiếng Nhật)).

Codepage vấn đề và các vấn đề về chuyển đổi phông chữ: đó là?

Đôi khi, bạn có thể thấy một ký tự dấu hỏi (?) hoặc một hộp khi một ký tự được hiển thị.

Các vấn đề về chuyển đổi codepage

Khi một ký tự được thay thế bằng một ký tự dấu hỏi (?), điều này là dấu hiệu sự cố chuyển đổi codepage, đã xảy ra. Dấu chấm hỏi (?) là mặc định để chuyển đổi codepage và về cơ bản có nghĩa là hệ điều hành không biết cách xử lý các giá trị ký tự và chuyển đổi. Nó sẽ thay thế giá trị ký tự với dấu hỏi (?). Điều này có nghĩa là các ký tự có giá trị không hợp lệ cho codepage máy hoặc codepage là cần thiết cho việc chuyển đổi không được cài đặt.

Các vấn đề về chuyển đổi phông chữ

Khi một ký tự được thay thế bằng một hộp, điều này là dấu hiệu sự cố chuyển đổi phông chữ đã xảy ra. Điều này xảy ra ở phía khách hàng khi khách hàng không có phông chữ đúng được cài đặt để hiển thị các ký tự này một cách chính xác. Ví dụ: khi một ký tự từ ký tự tiếng Nhật, và khách hàng không có phông chữ nhật bản cài đặt, Nhật ký tự được hiển thị như một hộp.

Tiếp theo, tôi sẽ nói về việc thay đổi như thế trong ASP.NET 1.x và cách những thay đổi ảnh hưởng đến các vấn đề toàn cầu hoá trong ngữ cảnh của ASP.NET.

Các vấn đề toàn cầu hoá trong ASP.NET 1.x:

Với ASP.NET, ba điều tuyệt vời được đưa ra:

  • Thẻ < toàn cầu hoá > tệp web.config
    < Toàn cầu hoá > thẻ đưa chúng ta ra khỏi các khái niệm không liên tục codepage và charsets và cho phép chúng tôi kiểm soát hầu hết các phiên bản trong ASP.NET.

  • Không gian tên System.Globalization
    Không gian tên toàn cầu hoá cung cấp cho chúng tôi với chương trình xử lý toàn cầu hoá.

  • Khái niệm nguồn tập tin đã được cải thiện đáng kể.
    Chúng tôi không giải quyết nguyên tệp theo cách chúng tôi sử dụng trong ASP. Bây giờ, các tệp nguồn dưới dạng tệp XML khi chúng tôi thiết kế và phát triển họ có như tổ tại thời gian chạy.

Toàn cầu hoá cấu hình thẻ:

Hai thiết lập quan trọng trong thẻ là như sau:

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

Khu vực khác có thể cài đặt sau:

fileEncoding

Xác định mã hoá .aspx, .asmx và .asax tập tin phân tích mặc định. Tệp định dạng Unicode và UTF-8 lưu với tiền tố dấu thứ tự byte (với chữ ký) sẽ được tự động nhận ra bất kể giá trị của fileEncoding.

Văn hóa

Xác định văn hóa mặc định để xử lý các yêu cầu Web (áp dụng phương thức lớp tên System.Globalization).

uiCulture

Xác định văn hóa mặc định để xử lý các tài nguyên phụ thuộc vào ngôn ngữ tìm kiếm (hệ thống vệ tinh).

Để biết thêm thông tin về văn hóa chuỗi (giá trị văn hóa và uiculture), ghé thăm Web site sau của Microsoft:

System.Globalization.CultureInfoClass
http://msdn2.microsoft.com/en-us/library/system.globalization.cultureinfo(vs.71).aspxCác thiết đặt được áp dụng bằng ASP.NET sau khi trả lời xong, và trước khi yêu cầu được chuyển ra ứng dụng của bạn. ResponseEncoding, bộ đệm được tạo ra để lưu trữ đầu ra được đặt mã hoá này. Mọi thứ đi vào bộ đệm này sẽ được mã hóa theo thiết lập khi nó được đưa vào bộ đệm.

Đối với requestEncoding, thời gian sẽ đọc yêu cầu và giải thích theo thiết lập trong phần này. Đây là một thiết lập có thể gây ra vấn đề, Tuy nhiên. Bảng dưới đây Hiển thị các giá trị chuỗi byte UTF-8 bit, bố cục.

Nếu giá trị ký tự nằm trong ASCII 7 bit chuẩn, giá trị byte không thay đổi. Nếu giá trị trên 127, nó phải tuân theo quy tắc dưới đây. Đặt hàng đầu bit cho thấy bao nhiêu ký tự trong chuỗi. Mỗi byte sau khi lần đầu tiên phải bắt đầu với bit đầu tiên được đặt thành 1.

Giao diện UTF-8 byte:

Byte

bit

đại diện

1

7

0vvvvvvv

2

11

110vvvvv 10vvvvvv

3

16

1110vvvv 10vvvvvv 10vvvvvv

4

21

11110vvv 10vvvvvv 10vvvvvv 10vvvvvv

Đây là nơi có vấn đề. Nếu trình duyệt mã hoá yêu cầu theo một mã hoá đơn byte (chẳng hạn như iso-8859-1), giá trị trên 127 sẽ không hợp lệ theo bố cục trên. Khi họ đang đọc vào bộ đệm UTF-8, các ký tự không hợp lệ chỉ được giảm xuống từ đầu.

Thay đổi mã hóa thời gian chạy

Trong trường hợp Application_BeginRequest , chúng tôi có thể sửa đổi giá trị requestEncoding và nó có hiệu lực trước khi yêu cầu được xử lý. Để trả lời, sự kiện Page_PreRender là cơ hội cuối cùng để sửa đổi mã hoá kết quả. Cũng lưu ý rằng Response.Write sẽ đặt nhân vật vào bộ đệm này ngay sau khi chúng tôi gọi như vậy chắc chắn có các bộ mã hoá trước khi sử dụng Response.Write.

Dữ liệu gốc là Phi Unicode: làm thế nào để vẫn hiểu nhiều byte charsets Internet Explorer?

Chúng tôi cũng có thể hoạt động như ASP nếu phải ASP.NET. Để làm điều này xảy ra, chúng ta cần đặt responseEncoding và requestEncoding windows-1252 (bản đầy đủ mã hóa với iso-8859-1) và sử dụng thuộc tính Response.Charset Hiển thị văn bản chính xác. Điều này hoạt động vì windows-1252 là một chương trình mã hóa đơn byte, và sửa đổi bất kỳ byte được thêm vào bộ đệm. Vì vậy, các ký tự byte kép được gửi như một loạt các byte duy nhất. Chúng tôi thì có thể cho Internet Explorer làm thế nào để giải thích các byte bằng cách sử dụng thuộc tính Response.Charset . Tình huống này có thể cần nếu dữ liệu ban đầu không được lưu trữ dưới dạng Unicode hoặc UTF-8, chẳng hạn như một giá trị trả lại từ một đối tượng, hoặc dữ liệu được lưu trữ trong Microsoft SQL Server trong trường không N (chẳng hạn như varchar).

Vấn đề toàn cầu hoá SQL Server và ASP.NET

Unicode dữ liệu vào SQL Server

Cách tốt nhất để lưu trữ dữ liệu trong SQL Server là sử dụng Unicode. Bất cứ khi nào chúng tôi sử dụng chèn, Cập Nhật, v.v., nếu thậm chí có thể ít dữ liệu Unicode, chúng ta cần thêm một N trước khi giá trị. Điều này cho cơ sở dữ liệu giá trị là Unicode. Ví dụ này là các đối tượng ADO. Họ thực hiện việc này tự động nếu sử dụng các đối tượng tập bản ghi thêm hồ sơ mới.

Sau đây là ví dụ:

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)"

Ngày/giờ nhập vào máy chủ SQL

Thông thường, chúng tôi có kiến thức về văn hóa và ngôn ngữ của ngày/giờ được giải thích trong ứng dụng ASP.NET của chúng tôi. Tuy nhiên, khi đẩy và kéo dữ liệu ngày/giờ cho và từ nguồn bên ngoài, chúng tôi có nguy cơ misinterpreting định dạng ngày/giờ. Điều này là do chúng tôi không thể luôn đảm bảo văn hóa và ngôn ngữ nguồn bên ngoài tương tự như ứng dụng của chúng tôi. Trong SQL Server này có thể giải quyết bằng cách sử dụng ' hiện ngôn ngữ' thuộc tính trong connectionstring kết nối được thiết lập cơ sở dữ liệu SQL. Chúng tôi có thể cung cấp cài đặt ngôn ngữ tương tự trong connectionstring là văn hóa trong ứng dụng của chúng tôi. Này bảo vệ chúng ta khỏi nguy cơ sai, vì SQL Server luôn chấp nhận và gửi dữ liệu ngày/giờ đồng ý với các thiết lập trên.

Không gian tên System.Globalization

Không gian tên này là toàn cầu hoá và bản địa hoá trong .NET Framework. Lớp chính được sử dụng trong không gian này là loại CultureInfo . Nó chứa thông tin văn hóa cụ thể, chẳng hạn như định dạng ngày/giờ, định dạng số, so sánh thông tin và thông tin văn bản. Để biết thêm thông tin về loại CultureInfo , truy cập Web site MSDN sau:

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

Văn hóa Trung so với văn hóa cụ thể

Văn hóa Trung là một văn hóa liên quan đến ngôn ngữ, nhưng không cụ thể quốc gia hoặc vùng. Văn hóa cụ thể được kết hợp cả hai ngôn ngữ và quốc gia cụ thể.

Ví dụ: "DE" (Trung văn hóa) là tiếng Đức, nhưng "de-AT" (cụ thể văn hóa) cho tiếng Đức khi nó được sử dụng trong áo. Trung văn hoá không thể được sử dụng định dạng.

Hiện chủ đề và văn hóa nhận thức của .NET Framework lớp

Lớp học và phương pháp nào trong thư viện .NET Framework mà chúng tôi mong đợi kết quả phải phụ thuộc vào văn hóa có hai chế độ tích hợp:

  • Chúng ta xác định mã văn hóa trong khi cung cấp các đối số để kết quả dựa trên văn hóa được chỉ định. Đây là tuỳ chọn.

  • Nếu điều này là bị mất (thường là), các lớp học có đủ thông minh để tiếp tục kiểm tra thuộc tính Thread.CurrentThread.CurrentCulture và hoạt động theo đó.

Chúng tôi có thể thay đổi giá trị của thuộc tính này với mã tương tự như sau:

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

Hiệu ứng này, "de" thể hiện tiếng Đức và "Tại" đại diện cho áo. Vì vậy, trong trường hợp này, DateTime.Now(). ToString phương pháp sẽ trả về ngày và giờ trong một định dạng tương ứng như ngày và giờ được thể hiện tiếng Đức trong áo.

Khuôn khổ bảo đảm (như sau) rằng nhà CurrentCulture luôn được khởi động:

  1. Dù nó được đặt thành lập.

  2. Trong trường hợp này không rõ ràng đặt bằng trình, thuộc tính được chọn từ các tập tin cấu hình (< toàn cầu hoá > thẻ).

  3. Nếu nhà bị thiếu, đó là văn hóa mà chạy máy chủ Web. Điều này thường là văn hóa Trung tương ứng với ngôn ngữ của hệ điều hành.

Tập tin tài nguyên

Tất cả .resx, .resource tệp và các tệp có tính Xây dựng hành động được đặt để Nhúng tài nguyên được thêm vào một dự án ASP.NET trong Visual Studio .NET, tự động biên soạn và nhúng trong ứng dụng hội như là một phần của biểu hiện. Điều này thậm chí có thể được thực hiện theo cách thủ công bằng cách sử dụng tiện ích tập tin nguồn điện (RESGEN) thông qua một dấu nhắc lệnh Visual Studio .NET. Để biết thêm thông tin, hãy truy cập vào Web site MSDN sau:

http://msdn2.microsoft.com/en-us/library/ccec7sz1(vs.71).aspxĐây là một khái niệm chung được áp dụng bất cứ khi nào chúng ta cần để quản lý các ứng dụng tài nguyên không liên quan đến toàn cầu hoá. Tuy nhiên, khi chúng tôi triển khai toàn cầu hoá, chúng tôi sẽ sử dụng hệ thống vệ tinh.

Hệ thống vệ tinh

Hệ thống vệ tinh có thể được sử dụng trong một dự án ASP.NET khi bạn chắc chắn rằng sau đây là đúng:

  1. Tất cả các phần tử giao diện người dùng trong tất cả các tập tin aspx cần được trang bị id và runat = thuộc tính máy chủ.

  2. Chúng tôi tạo riêng .resx tập tin. Từng phải tương ứng với mỗi văn hóa ta ứng dụng của chúng tôi hỗ trợ.

  3. Chúng tôi phải chọn một tên phổ biến cho tất cả các tệp cho ví dụ 'Dây'.

  4. Chúng tôi đặt tên tệp riêng .resx với commonfirstname. languagecode regioncodequy ước đặt tên sau .resx (ví dụ: Strings.de-AT.resx, Strings.en-GB.resx).

  5. Chúng tôi sẽ có các tập tin tài nguyên
    commonfirstname.resx (Strings.resx) có tất cả các chuỗi như chúng tôi muốn hiển thị trong trường hợp mặc định.

  6. Ghi mã phát hiện văn hóa của người dùng và đặt thuộc tính Thread.CurrentThread.CurrentUICulture để phù hợp với nó.

  7. Ghi mã nạp tài nguyên bằng cách sử dụng lớp ResourceManagercơ .

  8. Ghi mã trích chuỗi từ đối tượng tải và gán vào phần tử giao diện người dùng.

Khi bạn đã thực hiện các bước sau, Visual Studio.NET biên dịch Strings.resx và nhúng nó vào hội ứng dụng (MyGlobalizationTestProjectName.dll). Tuy nhiên, tất cả các tập tin .resx, nó sẽ tạo ra tệp dll riêng mà không phải thực thi mã nhưng chỉ nguồn dữ liệu. Đây thực sự là hệ thống vệ tinh. Ngoài ra, Visual Studio .NET vị trí trong cấu trúc thư mục tương tự như sau:MyGlobalizationTestProjectName |------- bin
|------en-US
MyGlobalizationTestProjectName.resources.dll
|------ja-JP
MyGlobalizationTestProjectName.resources.dll
|------de-AT
MyGlobalizationTestProjectName.resources.dll

Sự khác biệt giữa CurrentCulture và CurrentUICulture

Khi phương pháp lớp trong không gian System.Globalization phụ thuộc vào thuộc tính Thread.CurrentThread.CurrentCulture cho kết quả, loại ResourceManagercơ tải nguyên Hội phụ thuộc vào thuộc tính Thread.CurrentThread.CurrentUICulture tải hội tinh phù hợp. Sau đây là ví dụ về mã 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");
}

}

Thứ tự mà ASP.NET chọn hệ thống vệ tinh:

Khi bạn đã thiết lập các chủ đề CurrentUICulture, ASP.NET tự động lựa chọn nguồn lực phù hợp, theo thứ tự sau đây:

  • Nếu một hội tinh văn hóa kết hợp, các tài nguyên từ đó được sử dụng.

  • Nếu cấu hình vệ tinh với văn hóa trung tính phù hợp với CurrentUICulture, tài nguyên từ đó được sử dụng.

  • Nếu kết hợp không tìm thấy cho CurrentUICulture, tài nguyên dự lưu trữ trong hội thi hành được sử dụng.

Lưu ý Điều này dựa trên trình dự phòng chung nhiều tài nguyên. Để biết thêm thông tin, hãy truy cập vào Web site MSDN sau:

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

Tự tạo hệ thống vệ tinh:

Này sử dụng hệ thống vệ tinh là nơi Visual Studio .NET tạo hội tự. Visual Studio .NET không mạnh tên vệ tinh hệ thống theo mặc định, Tuy nhiên. Nếu bạn muốn thay đổi các tuỳ chọn này, bạn sẽ cần để tạo hệ thống vệ tinh theo cách thủ công. Để biết thêm thông tin, hãy truy cập vào Web site MSDN sau:

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

Là gì với ASP.NET 2.0 mặt toàn cầu hoá?

Sử dụng rộng rãi ASP.NET và những vấn đề mà chúng tôi sẽ nhìn thấy liên quan đến toàn cầu hoá tính năng trong ASP.NET 2.0 vẫn còn một khoảng cách trước. Tuy nhiên, nó sẽ là tốt để xem những gì hướng toàn cầu hoá phương pháp đầu cho ứng dụng web ngắn.

Hỗ trợ toàn cầu hoá ASP.NET 2.0 đã trải qua một và nhà phát triển Web đã được khả năng thực hiện bản địa hoá ứng dụng Web dễ dàng như là ứng dụng Windows. Sau đây là danh sách các tính năng nền tảng của toàn cầu hoá phương pháp trong ASP.NET 2.0:

Tôi đã nhập tài nguyên Cốt lõi của .NET Framework 2.0 Phiên bản hỗ trợ cho tôi đã nhập tài nguyên cho nhà phát triển Intellisense và đơn giản hoá mã bắt buộc để truy cập tài nguyên tại thời gian chạy.

Quản lý tài nguyên Editor Visual Studio .NET 2.0 bao gồm một trình soạn thảo tài nguyên mới với hỗ trợ tốt hơn cho việc tạo và quản lý tài nguyên mục chuỗi, hình ảnh, tập tin bên ngoài và các loại phức tạp.

Tạo nguồn cho biểu mẫu Web Nhà phát triển Windows Forms đã có hưởng lợi ích của quốc tế tự động. Visual Studio .NET 2005 sẽ hỗ trợ quốc tế nhanh chóng bằng cách tự động tạo ra nguồn cho biểu mẫu Web, người dùng điều khiển và trang chủ.

Cải thiện thời gian hỗ trợ Phiên bản ResourceManagercơ được quản lý theo thời gian và dễ dàng truy cập vào máy chủ mã qua giao diện lập trình có thể truy cập hơn.

Biểu thức bản địa hoá Tường thuật ngữ hiện đại cho các trang Web hỗ trợ bản đồ tài nguyên mục kiểm soát tài sản, thuộc tính HTML hoặc vùng nội dung tĩnh. Các cụm từ được mở rộng, cung cấp các cách để kiểm soát quá trình đính kèm bản địa hóa nội dung HTML ra.

Văn hóa tự động lựa chọn Quản lý văn hóa lựa chọn cho mỗi yêu cầu trang Web có thể được tự động liên kết với tuỳ chọn.

Mô hình nhà cung cấp tài nguyên Mô hình nhà cung cấp tài nguyên mới cho phép nhà phát triển để lưu trữ tài nguyên thay đổi nguồn dữ liệu như tập tin phẳng và cơ sở dữ liệu bảng, trong khi mô hình lập trình để truy cập các tài nguyên này vẫn còn phù hợp.

Để biết thêm thông tin về phương pháp toàn cầu hoá ASP.NET 2.0, ghé thăm website sau của MSDN:

ASP.NET 2.0 bản địa hoá tính năng: Một phương pháp mới để phối ứng dụng Web
http://msdn2.microsoft.com/en-us/library/ms379546(VS.80).aspx

Kết thúc

Đó là tất cả bây giờ về vấn đề toàn cầu hoá ASP và ASP.NET. Tôi hy vọng bài viết này sẽ giúp một số khách hàng khắc phục các vấn đề toàn cầu hoá ASP và ASP.NET trước khi họ chọn liên hệ với Microsoft Support. Tôi sẽ kết thúc bằng sau nghĩ rằng:

"Bất cứ nơi nào và bất cứ khi nào bạn đang phát triển, suy nghĩ về triệu người bạn có thể trao quyền trên toàn thế giới. Thực hiện các giải pháp sẵn sàng trên thế giới. Công cụ Microsoft và công nghệ làm quốc tế dễ dàng hơn."

Chúng tôi sẽ kịp lại tháng tới với một chủ đề thú vị.

Cảm ơn bạn đã dành thời gian.

Để biết thêm thông tin về các vấn đề toàn cầu hoá trong ASP và ASP.NET, xem Web site sau của Microsoft:

SetLocale và GetLocale trong vbscript
http://msdn2.microsoft.com/en-us/library/5xf99h19.aspx

Toàn cầu hoá từng bước
http://msdn.microsoft.com/en-us/goglobal/bb688110

Đi chung: Phối động Web ứng dụng IIS 5.0 và SQL Server
http://msdn.microsoft.com/msdnmag/issues/01/05/global/default.aspx

Đi chung: Thiết kế ASP dựa trên trang Web của bạn hỗ trợ toàn cầu hoá
http://msdn.microsoft.com/msdnmag/issues/0700/localize/default.aspx

315616 làm thế nào để phát hiện ngôn ngữ khách hàng trong hoạt động trang trang trong IIS
http://support.microsoft.com/?id=315616

Ngôn ngữ ID(LCID) biểu đồ
http://msdn2.microsoft.com/en-us/library/0h88fahh.aspx

Không gian tên System.Globalization
http://msdn2.microsoft.com/en-us/library/system.globalization(vs.71).aspx

Tài nguyên và bản địa hoá bằng cách sử dụng .NET Framework SDK
http://msdn2.microsoft.com/en-us/library/aa309421(VS.71).aspx

Tài nguyên trong các ứng dụng ASP.NET
http://msdn2.microsoft.com/en-us/library/1ztca10y(vs.71).aspx

ASP.NET < toàn cầu hoá > cấu hình phần tử
http://msdn2.microsoft.com/en-us/library/hy4kkhe0(vs.71).aspx

Thiết kế và triển khai hướng dẫn khách hàng Web - toàn cầu hoá và bản địa hoá
http://msdn2.microsoft.com/en-us/library/ms978628.aspx

Trang web chính thức của Microsoft-phát triển toàn cầu và cổng máy tính
http://msdn.microsoft.com/en-us/goglobal/bb688096

Phát triển ứng dụng đã sẵn sàng trên thế giới
http://msdn2.microsoft.com/en-us/library/h6270d0z(vs.71).aspx

Toàn cầu hoá kiến trúc cho ASP.NET
http://msdn2.microsoft.com/en-us/library/aa478974.aspx

Công cụ bản địa hoá doanh nghiệp - phát triển ứng dụng bản địa hoá Microsoft ASP.NET
http://msdn2.microsoft.com/en-us/library/aa479334.aspx

Microsoft chữ
http://www.microsoft.com/typography/default.mspx

839861 A System.Resources.MissingManifestResourceException ngoại lệ xảy ra khi bạn cố gắng truy cập vào tài nguyên địa phương

Bảng thuật ngữ

ANSI Đại diện cho Mỹ viện tiêu chuẩn. Trong tình huống này, nó đại diện cho codepage cụ thể cho một ngôn ngữ/ký tự cụ thể. Thông thường là tiếng Anh codepage (windows-1252).

ASCII Một chương trình mã hóa 1 byte (hoặc 7 bit). Chỉ các ký tự trong phạm vi 0-127 được chuẩn. Phạm vi 128-255 là phần mở rộng ASCII và không phải là một phần của tiêu chuẩn. Ví dụ này là sự khác biệt giữa phạm vi trên biểu đồ OEM ASCII và biểu đồ VB ASCII.

Ký tự Thiết lập được sử dụng chủ yếu cho Internet Explorer và trình duyệt cho trình duyệt làm thế nào để giải thích dữ liệu ký tự. Ví dụ: Response.charSet = "iso-8859-1."

Codepage Bảng chuyển đổi xác định cách ký tự được mã hoá (thường được sử dụng cho máy chủ).

Toàn cầu hoá Toàn cầu hoá là một quá trình thiết kế và tạo ra một ứng dụng để yêu cầu duy nhất một văn hóa, vùng hoặc quốc gia và ngôn ngữ yêu cầu có thể được đáp ứng. Nói cách khác thiết kế ứng dụng theo cách mà nó có thể được bản địa hoá sau là toàn cầu hoá.

Ngôn ngữ/văn hóa Ngôn ngữ và vùng cụ thể định dạng/tùy chọn bao gồm, ngày và định dạng lịch, định dạng thời gian, định dạng tiền tệ, vỏ, phân loại và so sánh chuỗi, định dạng địa chỉ, điện thoại số định dạng, kích cỡ giấy đơn vị đo, viết hướng, v.v..

LocaleID (LCID) Giá trị DWORD chỉ định danh ngôn ngữ và sắp xếp của bạn. Nó có thể được sử dụng định dạng vùng cụ thể cho ví dụ ngày/giờ v.v. sẽ được định dạng theo.

Localizability Khả năng của ứng dụng để hiển thị nội dung cho ngôn ngữ/ngôn ngữ yêu cầu.

Bản địa hoá Bản địa hoá là quá trình dịch giao diện người dùng vào ngôn ngữ cụ thể và/hoặc ngôn ngữ khác.

Multibyte ký tự Một ký tự trong đó các ký tự bao gồm hai hoặc nhiều byte, chẳng hạn như tiếng Nhật. UTF-8 cũng thuộc loại này. (Unicode kỹ thuật nằm trong mục này, nhưng trong Windows, nó có thể loại riêng của mình.)

Unicode Chương trình mã hóa 2 byte. Windows sử dụng định dạng Unicode trong nội bộ. Bất kỳ API đặc biệt cho Unicode signified bằng một "W" vào cuối của tên hàm. Còn được gọi là nhiều ký tự; không thể trực tiếp sử dụng từ ứng dụng web.

UTF-8 Một mã hóa khi một ký tự có thể được thể hiện bằng 1-6 byte. Trong Windows, phạm vi là 1-3 byte. Không được hỗ trợ trong NT4 dành cho ứng dụng web.
Để biết thêm thông tin, hãy bấm vào số bài viết sau để xem bài viết trong Cơ sở Kiến thức Microsoft:

Hỗ trợ UTF8 175392


Nhiều ký tự Bí danh Unicode. Còn được gọi là DBCS (bộ ký tự byte kép) UCS-2, UTF-16.

Như thường lệ, vui lòng gửi ý tưởng về các chủ đề mà bạn muốn giải quyết trong tương lai cột hoặc trong cơ sở kiến thức bằng cách sử dụng các
Biểu mẫu Yêu cầu này .

Bạn cần thêm trợ giúp?

Bạn muốn xem các tùy chọn khác?

Khám phá các lợi ích của gói đăng ký, xem qua các khóa đào tạo, tìm hiểu cách bảo mật thiết bị của bạn và hơn thế nữa.

Cộng đồng giúp bạn đặt và trả lời các câu hỏi, cung cấp phản hồi và lắng nghe ý kiến từ các chuyên gia có kiến thức phong phú.

Thông tin này có hữu ích không?

Bạn hài lòng đến đâu với chất lượng dịch thuật?
Điều gì ảnh hưởng đến trải nghiệm của bạn?
Khi nhấn gửi, phản hồi của bạn sẽ được sử dụng để cải thiện các sản phẩm và dịch vụ của Microsoft. Người quản trị CNTT của bạn sẽ có thể thu thập dữ liệu này. Điều khoản về quyền riêng tư.

Cảm ơn phản hồi của bạn!

×