ข้ามไปที่เนื้อหาหลัก
การสนับสนุน
ลงชื่อเข้าใช้
ลงชื่อเข้าใช้ด้วย Microsoft
ลงชื่อเข้าใช้หรือสร้างบัญชี
สวัสดี
เลือกบัญชีอื่น
คุณมีหลายบัญชี
เลือกบัญชีที่คุณต้องการลงชื่อเข้าใช้

คอลัมน์เสียงสนับสนุน ASP.NET

เมื่อต้องการกำหนดคอลัมน์นี้กับความต้องการของคุณ เราขอให้คุณสามารถส่งความคิดเห็นของคุณเกี่ยวกับหัวข้อที่คุณสนใจ และการตัดสินค้าจากคลังที่คุณต้องการดูได้รับการจัดการในอนาคตบทความในฐานความรู้และคอลัมน์เสียงสนับสนุน คุณสามารถส่งความคิดและคำติชมของคุณ โดยใช้แบบฟอร์มสอบถามสำหรับดังกล่าว นอกจากนี้ยังมีการเชื่อมโยงไปยังแบบฟอร์มที่ด้านล่างของคอลัมน์นี้

บทนำ

ยินดีต้อนรับ นี่คือ Sukesh Khare กับทีมสนับสนุนนักพัฒนาของ Microsoft ASP.NET นี่คือครั้งแรกที่ฉันได้เขียนคอลัมน์เสียงสนับสนุน ฉันหวังว่าจะเขียนคอลัมน์เพิ่มเติมดังกล่าวในเดือนข้างหน้า

สำหรับคอลัมน์ของเดือนนี้ ที่จะกล่าวถึงประเด็นสากลใน Active Server Page (ASP) และ ASP.NET ประเด็นที่เราเผชิญใน ASP สิ่งสิ่งที่เปลี่ยนแปลงใน ASP.NET 1 x และอะไรคือค่ากับ ASP.NET 2.0 ด้านหน้าสากล

หมายเหตุ ถ้าคุณมาข้ามคำที่คุณไม่เข้าใจ ดูส่วนอภิธานศัพท์ที่ด้านล่างของคอลัมน์นี้

การตัดสินค้าจากคลังสากลใน ASP

ก่อน ASP.NET ไม่มีการสนับสนุนสำหรับการพัฒนาโปรแกรมประยุกต์สำหรับผู้ใช้ส่วนกลางที่มีโครงสร้าง ในระหว่างการพัฒนาแรก ๆ ของ ASP นักพัฒนาเช่นเองพบเฉพาะกระจัดกระจายสนับสนุนสากลในระบบปฏิบัติการ เบราว์เซอร์ ASPs และระบบส่วนหลัง อย่างไรก็ตาม เราส่วนใหญ่แล้วไม่ดำเนินการใด ๆ เชื่อมต่ออัตโนมัติทั่วทั้งแอพลิเคชันเหล่านี้ โชคดี เราไม่เข้าใจแนวคิดอย่างเช่นชุดอักขระ โค้ดเพจ ภาษาของเบราว์เซอร์ และแบบอักษรที่เราไม่สามารถใช้ประโยชน์สำหรับการพัฒนาโปรแกรมประยุกต์สำหรับผู้ใช้ส่วนกลาง

ระบบจะยากเกินไปในการแบ่งออกเป็นประเภทที่ใช้โดยรวมทั้งหมดออกให้ของเราใน ASP.NET ได้เห็น แทน ฉันจะแสดงชุดของแนวคิดที่เกี่ยวข้องกับปัญหาต่าง ๆ มากมาย

ชุดอักขระและ codepages

พวกเราทั้งหมดทราบว่า อักขระบนหน้าจอคอมพิวเตอร์ของเรา เพียงแค่ชุดของไบต์ สามารถสร้าง และหมายเลขใด ๆ ของวิธีการตีความชุดไบต์ ถ้าการแปลใช้การเข้ารหัสที่แตกต่างจากการเข้ารหัสที่อาร์เรย์ของไบต์ที่ถูกสร้างขึ้นด้วย การแปลจะแสดงเป็นขยะ ชุดอักขระ (charsets) ถูกเข้ารหัสรูปแบบที่โดยปกติจะใช้ โดยเบราว์เซอร์ เพจรหัสคุณสมบัติ ซึ่งสามารถใช้ได้สำหรับการแปลงฝั่งเซิร์ฟเวอร์ มีเพียงตารางการแปลงที่ระบุวิธีการเข้ารหัสอักขระ

เบราว์เซอร์ที่เข้ารหัสข้อมูลลงรายการบัญชีแบบฟอร์มตามชุดอักขระปัจจุบัน ถ้าชุดอักขระปัจจุบันเป็น "จและ windows" แล้วส่งไบต์ไปยังเซิร์ฟเวอร์จะยังถูกเข้ารหัสเป็น "การ windows-การจและ"

เมื่อจะถูกแปล ASP คอลเลกชันของฟอร์มและคุณลักษณะจะไม่สร้างจนกว่าจะมีการอ้างอิงในโค้ด เมื่อพวกเขากำลังจะสร้าง ข้อมูลสตริงที่ถูกแปลงเป็น Unicode ตามเพจรหัสปัจจุบัน (โดยค่าเริ่มต้น ทั้ง ASP และ ASP.NET ประมวลผลเนื้อหา โดยใช้รูปแบบ Unicode) จำเป็นอย่างยิ่งที่คุณตั้งค่าเพจรหัสที่ถูกต้องก่อนที่จะเรียกเก็บเงิน อ้างอิง มิฉะนั้น การแสดง Unicode ในหน่วยความจำจะไม่ถูกต้อง

เมื่อต้องการตั้งค่าเพจรหัส ใช้Session.CodepageหรือResponse.Codepage Response.Codepageจะพร้อมใช้งานในรุ่น Microsoft Internet Information Services (IIS) 5.1 หรือใหม่กว่าเท่านั้น สำหรับข้อมูลเกี่ยวกับค่าจำนวนเต็ม (ซึ่งสอดคล้องกับชุดอักขระ) ว่า เราจะตั้งค่าคุณสมบัติเหล่านี้เพื่อ แวะไปที่เว็บไซต์ต่อไปนี้ของ Microsoft:

การรู้จำชุดอักขระ
http://msdn2.microsoft.com/en-us/library/Aa752010.aspxตัวอย่างเช่น การตั้งค่าโค้ดเพจของภาษาอาหรับ ใช้รหัสต่อไปนี้:

Session.Codepage = 1256

Response.Codepageจะมีผลเฉพาะกับการตอบสนองปัจจุบัน อย่างไรก็ตามSession.Codepageจะมีผลต่อการตอบรับทั้งหมดที่ทำ โดยผู้ใช้ปัจจุบัน เมื่อเพจรหัสถูกตั้งค่า โดยใช้คุณสมบัติเหล่านี้อย่างใดอย่างหนึ่ง และมีสร้างคอลเลกชันของฟอร์มและคุณลักษณะการเปลี่ยนแปลงเพจรหัสปัจจุบันนี้ทำให้วิธีการResponse.Writeเพื่อแปลงแบบ Unicode ในหน่วยความจำแบบเพจรหัสปัจจุบัน สำหรับข้อมูลเพิ่มเติมเกี่ยวกับหัวข้อนี้ แวะไปที่เว็บไซต์ต่อไปนี้:

ตั้งค่าหน้ารหัสสำหรับสตริงที่แปลง (ASP)http://msdn2.microsoft.com/en-us/library/ms525789.aspxการ bottom-line เมื่อจะมาพร้อมกับการตัดสินค้าจากคลังที่เกี่ยวข้องกับ charsets และ codepages คือ charset ที่ไคลเอนต์ และควรตรงกับโค้ดเพจของเซิร์ฟเวอร์

ยอมรับภาษา

ถ้านักพัฒนา ASP ที่ต้องการทราบว่าภาษาใดที่ผู้ใช้มีการตั้งค่าในเบราว์เซอร์ของเขา นักพัฒนาสามารถใช้ตัวแปรRequest.ServerVariables ("HTTP_ACCEPT_LANGUAGE")เพื่อค้นหารายการของภาษาที่ผู้ใช้ต้องการอ่านคำตอบใน (เช่นภาษาอังกฤษ เยอรมัน หรืออินเดียน) และลำดับของการกำหนดลักษณะที่ผู้ใช้ต้องการดูภาษาเหล่านี้ใน ใน ASP.NET ข้อมูลที่คล้ายกันอยู่ในคุณสมบัติRequest.UserLanguagesเป็นแบบอาร์เรย์
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีการใช้ข้อมูลนี้ในรหัส ASP คลิกหมายเลขบทความต่อไปนี้เพื่อดูบทความในฐานความรู้ของ Microsoft:

วิธีการ229690การตั้ง ID ตำแหน่งกระทำการของ ASP ต่อการตั้งค่าภาษาของเบราว์เซอร์

แสดงอักขระแบบหลายไบต์ตั้งค่าใน Internet Explorer

รูปของการเข้ารหัสเท่านั้นที่สามารถแสดงชุดอักขระแบบหลายไบต์เป็น Unicode (UTF-8) มี UTF-8 เราสามารถแสดงซิริลลิก อินเดียน และภาษาญี่ปุ่นทั้งหมดบนหน้าเดียวกัน ถ้าเราไม่ใช้ utf-8 เราสามารถแสดงเฉพาะเหล่านี้ภาษาใดภาษาหนึ่งในแต่ละครั้ง เมื่อต้องการตั้งค่า charset ของเบราว์เซอร์ ใช้คุณสมบัติResponse.CharSet

อักขระแบบหลายไบต์คงที่บนเพจ

เมื่อต้องการแสดงอักขระแบบหลายไบต์ที่เก็บไว้โดยตรงในเพจ เราต้องบันทึกหน้า ด้วยการเข้ารหัสเฉพาะ UTF-8 จะเป็นการดีที่สุด แต่เพจรหัสเฉพาะ (ตรงกับโค้ดเพจของอักขระ) จะทำงานด้วย

บันทึกไฟล์ ASP ใช้ Microsoft Visual InterDev ไม่ช่วยที่นี่ เนื่องจาก Visual InterDev สามารถบันทึกเฉพาะในภาษาอังกฤษแบบ ANSI หรือ Unicode เพจ ASP ใด ๆ บันทึกเป็น ASP ไม่สนับสนุน Unicode

ใน Microsoft Visual Studio .NET คุณสามารถบันทึกแฟ้มการเข้ารหัสใด ๆ มีสองวิธีดังนี้ ค่าเริ่มต้นคือวิธีการ บันทึกแฟ้ม โดยใช้โค้ดเพจของปัจจุบันสำหรับผู้ใช้ อีกวิธีหนึ่งในการบันทึกแฟ้ม ด้วยการเข้ารหัสจะเป็นดังนี้:
บนเมนูแฟ้มคลิกบันทึกแฟ้มเป็น ใน
บันทึกแฟ้มเป็นกล่องโต้ตอบในกล่อง คลิกลูกศรแบบหล่นลงบนแบบ
ปุ่มบันทึก เมื่อคุณคลิกลูกศร ตัวเลือกคือ
บันทึกและบันทึก ด้วยการเข้ารหัส เมื่อคุณคลิก
บันทึก ด้วยการเข้ารหัสกล่องโต้ตอบตัวเลือกบันทึกขั้นสูงปรากฏขึ้น ซึ่งคุณสามารถเลือกชนิดของการเข้ารหัสที่คุณต้องการใช้จากรายการของ codepages ที่ติดตั้งบนคอมพิวเตอร์


หมายเหตุ ตัวเลือกนี้เปลี่ยนการเข้ารหัสสำหรับการบันทึกการดำเนินงาน แต่เป็นเพียงหนึ่งครั้งเท่านั้น บันทึกครั้งถัดไปจะถูกตั้งค่ากลับเป็นค่าเริ่มต้น

เมื่อต้องการเปลี่ยนเพจรหัสเริ่มต้น คลิกตัวเลือกบันทึกขั้นสูงในการ
เมนู'แฟ้ม' ในกล่องโต้ตอบตัวเลือกบันทึกขั้นสูงคุณสามารถตั้งค่าการเข้ารหัสเริ่มต้นสำหรับบันทึกการดำเนินการไปเพจรหัสที่คุณเลือก

วิธีการเหล่านี้เกี่ยวข้องกับวิธีบันทึกแฟ้มบนดิสก์ อย่างไรก็ตาม เพื่อควบคุมการแสดงผลสำหรับ 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 ในขณะที่ผู้ใช้เข้าสู่ระบบ (มีการตั้งค่าตำแหน่งที่ตั้งเดียวกัน) มีรูปแบบวันที่เป็นวันที่ 1/11/2004 การตั้งค่าวันที่ 1/11/2004 จะมีผลสำหรับ ASP

(สำหรับ ASP.NET นี้สามารถแตกต่างกันไป ในการติดตั้งบาง ASPNET ผู้ใช้จะมีส่วนกำหนดค่าของตนเองที่จะแสดงขึ้นภายใต้ HKEY_USERS เมื่อจะมีการโหลดหน่วย ผู้อื่น จะใช้การ การกำหนดค่าเริ่มต้น เรายังสามารถใช้แอตทริบิวต์ของเพจรหัสใน <%@% > การประกาศ นี้จะใช้เมื่อมีบันทึกแฟ้ม ด้วยการเข้ารหัสแบบอื่นแล้วเริ่มต้น เช่นเพจรหัส 932 (ญี่ปุ่น))

โค้ดเพจของการตัดสินค้าจากคลังเทียบกับการตัดสินค้าจากคลังการแปลงอักษร: ที่อยู่ที่หรือไม่

บางครั้ง คุณอาจเห็นอักขระเครื่องหมายคำถาม (?) หรือกล่องที่อักขระควรจะปรากฏขึ้น

ปัญหาการแปลงเพจรหัส

เมื่ออักขระจะถูกแทนที่ ด้วยอักขระเครื่องหมายคำถาม (?) นี้เป็นการบ่งชี้ว่า เกิดปัญหาการแปลงเพจรหัส เครื่องหมายคำถาม (?) อักขระเริ่มต้นสำหรับการแปลงเพจรหัสคือ และโดยปกติแล้วหมายความ ว่า ระบบปฏิบัติการไม่ทราบวิธีการจัดการกับค่าอักขระ และแปลงใบเสนอราคา จะเป็นแทนค่าอักขระที่ มีเครื่องหมายคำถาม (?) นี่อาจหมายความ ว่า อักขระที่มีค่าที่ไม่ถูกต้องสำหรับเพจรหัส หรือว่า เพจรหัสที่จำเป็นสำหรับการแปลงที่ไม่ได้ติดตั้ง

ปัญหาการแปลงแบบอักษร

เมื่ออักขระถูกแทนที่ ด้วยกล่อง นี้เป็นการบ่งชี้ว่า เกิดปัญหาการแปลงแบบอักษร เหตุการณ์นี้เกิดขึ้นบนฝั่งไคลเอ็นต์เมื่อไคลเอ็นต์ไม่มีแบบอักษรถูกติดตั้งเมื่อต้องการแสดงอักขระนี้อย่างถูกต้อง ตัวอย่างเช่น เมื่อเป็นอักขระจากอักขระภาษาญี่ปุ่น และไคลเอ็นต์ไม่มีสนับสนุนแบบอักษรภาษาญี่ปุ่น อักขระภาษาญี่ปุ่นจะแสดงเป็นกล่อง

ถัดไป ฉันจะพูดคุยเกี่ยวกับวิธีเปลี่ยนสิ่งต่าง ๆ ใน ASP.NET 1.x และวิธีการเปลี่ยนแปลงเหล่านั้นมีผลกระทบต่อประเด็นสากลในบริบทของ ASP.NET

การตัดสินค้าจากคลังสากลใน ASP.NET 1.x:

กับ ASP.NET สามสิ่งที่ยอดเยี่ยมได้ถูกนำมาใช้:

  • แท็ก <สากล > ในแฟ้ม web.config
    แท็ก <สากล > นำให้เราออกจากแนวคิดของ codepages และ charsets incoherent และช่วยให้เราควบคุมตัวแปรภายใน ASP.NET ส่วนใหญ่

  • Namespace ของ System.Globalization
    Namespace ใช้โดยรวมให้เราเห็นเป็นกำลังทางการเขียนโปรแกรมจัดการสากล

  • แนวคิดของแฟ้มทรัพยากรได้ถูกปรับปรุงอย่างมาก
    เราไม่ต้องจัดการกับแฟ้มทรัพยากรในวิธีที่เราใช้ใน ASP ขณะนี้ แฟ้มทรัพยากรอยู่ในรูปของไฟล์ XML เมื่อเราทำการออกแบบ และพัฒนาเหล่านั้น และจะอยู่ assembles ขณะใช้งานจริง

แท็กโครงแบบสากล:

ตั้งค่าที่สำคัญสองในแท็กมีดังนี้:

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

พื้นที่อื่น ๆ สามารถตั้งค่าได้ต่อไปนี้:

fileEncoding

ระบุค่าเริ่มต้นการเข้ารหัสสำหรับ.aspx, .asmx และแฟ้ม.asax ที่แยกวิเคราะห์ แฟ้ม Unicode และ utf-8 ที่บันทึกไว้ ด้วยคำนำหน้าเครื่องหมายใบสั่งไบต์ (พร้อมลายเซ็น) จะสามารถรู้จักอัตโนมัติ โดยไม่คำนึงถึงค่าของfileEncoding

วัฒนธรรม

ระบุภาษาเริ่มต้นสำหรับการประมวลผลบนเว็บคำขอขาเข้า (ที่ใช้ในวิธีการคลาสของจาก System.Globalization namespace)

uiCulture

ระบุภาษาเริ่มต้นสำหรับการประมวลผลการค้นหาทรัพยากรขึ้นอยู่กับตำแหน่งที่ตั้ง (แอสเซมบลีดาวเทียม)

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับสตริงการวัฒนธรรม (ค่าของวัฒนธรรมและ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

เค้าโครง UTF-8 ไบต์:

ไบต์

บิต

การนำเสนอ

1

7

0vvvvvvv

2

11

110vvvvv 10vvvvvv

3

16

1110vvvv 10vvvvvv 10vvvvvv

4

21

11110vvv 10vvvvvv 10vvvvvv 10vvvvvv

นี่คือที่มาปัญหา ถ้าเบราว์เซอร์ที่เข้ารหัสคำขอตามการเข้ารหัสแบบไบต์เดี่ยว (เช่น iso-8859-1), ค่าสูงกว่า 127 จะไม่ถูกต้องตามเค้าโครงอยู่ด้านบน เมื่อผู้ใช้กำลังอ่านลงในบัฟเฟอร์ UTF-8 อักขระที่ไม่ถูกต้องจะถูกลบออกจากผลลัพธ์เพียง

เปลี่ยนแปลงการเข้ารหัสขณะทำงาน

เราสามารถปรับเปลี่ยนค่าของ requestEncoding และไม่มีผลใด ๆ ก่อนที่จะประมวลผลคำขอในเหตุการณ์Application_BeginRequest สำหรับการตอบ เหตุการณ์Page_PreRenderเป็นโอกาสสุดท้ายในการปรับเปลี่ยนการเข้ารหัสของผลผลิต นอกจากนี้ยัง หมายเหตุว่าResponse.Writeจะใส่อักขระลงในบัฟเฟอร์นี้ทันทีที่เราเรียก ดังนั้นควรแน่ใจว่าคุณมีการเข้ารหัสที่เหมาะสมก่อนที่จะใช้Response.Write

ข้อมูลต้นฉบับจะไม่ใช่ Unicode: วิธีการยังคง ทำให้ Internet Explorer ตีหลายไบต์ charsets หรือไม่

นอกจากนี้เราจะทำให้ ASP.NET ที่ทำงานเหมือน ASP ถ้าเราต้องการ เมื่อต้องการทำให้ฟอร์มนี้เกิดขึ้น เราจำเป็นต้องตั้งค่า responseEncoding และ requestEncoding เป็นwindows 1252 (สมบูรณ์เข้ารหัสแบบกว่า iso-8859-1), และใช้คุณสมบัติResponse.Charsetเพื่อแสดงข้อความถูกต้อง ทำงานได้เนื่องจาก windows 1252 ไบต์เดี่ยวเข้ารหัสโครงร่าง และปรับเปลี่ยนไบต์ใด ๆ ที่ถูกเพิ่มไปยังบัฟเฟอร์ ดังนั้น อักขระไบต์คู่จะถูกส่งเป็นชุดของไบต์เดี่ยว เราสามารถแล้วแจ้งให้ Internet Explorer วิธีการแปลไบต์ โดยใช้คุณสมบัติResponse.Charset สถานการณ์นี้อาจจำเป็น ถ้าไม่มีเก็บข้อมูลต้นฉบับเป็น Unicode หรือ utf-8 เช่นค่าที่ส่งกลับจากวัตถุ COM หรือข้อมูลถูกเก็บไว้ใน Microsoft SQL Server ในเขตข้อมูลที่ไม่ใช่ N (เช่นชนิดข้อมูล varchar)

ปัญหาการใช้โดยรวมของ SQL Server และ ASP.NET

ป้อนข้อมูล Unicode กับ SQL Server

วิธีดีที่สุดในการเก็บข้อมูลใน SQL Server จะใช้ Unicode เมื่อใดก็ ตามที่เราใช้แทรก อัพเดต เป็น ต้น ถ้าไม่มีแม้กระทั่งโอกาสน้อยที่สุดของข้อมูล Unicode เราจำเป็นต้องเพิ่มตัวNก่อนค่า นี่บอกฐานข้อมูลว่า ค่าเป็น Unicode ตัวอย่างที่ดีของสิ่งนี้คือ วัตถุ 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 ของเรา อย่างไรก็ตาม ในขณะที่กด และ pulling ข้อมูลวันที่/เวลาที่ต้อง การจากแหล่งภายนอก เราเสี่ยงต่อการ misinterpreting รูปแบบวัน / เวลา เป็นเช่นนี้ เพราะเราจะไม่สามารถรับประกันภาษาและตำแหน่งที่ตั้งของแหล่งข้อมูลภายนอกจะเหมือนกับในแอพลิเคชันของเรา ใน SQL Server นี้สามารถแก้ไขได้ ด้วยการใช้ 'ปัจจุบันภาษา' แอตทริบิวต์ในสายอักขระการเชื่อมต่อถูกสร้างไปยังฐานข้อมูล SQL ได้ เราสามารถให้การตั้งค่าภาษาเดียวกันในสายอักขระเป็นวัฒนธรรมในแอพลิเคชันของเรา ซึ่งช่วยป้องกันเราจากความเสี่ยงของการ misinterpretation เนื่องจาก SQL Server ยอมรับ และส่งข้อมูล date/time ในความยินยอมให้มีการตั้งค่าที่ระบุข้างเสมอกัน

พื้นที่ว่างในชื่อ System.Globalization

เนมสเปซนี้เป็นหลักของสากลและแปลใน.NET Framework ชั้นหลักที่ใช้ใน namespace นี้เป็นคลาสCultureInfo จะเก็บข้อมูลเฉพาะของวัฒนธรรม เช่นรูปแบบวัน / เวลา รูปแบบตัวเลข เปรียบเทียบ และรายละเอียดของข้อความ สำหรับข้อมูลเพิ่มเติมเกี่ยวกับคลาสCultureInfoแวะไปที่เว็บไซต์ต่อไปนี้:

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

Cultures กลางเปรียบเทียบกับ cultures ที่ระบุ

วัฒนธรรมเป็นกลางจะมีวัฒนธรรมที่สัมพันธ์กับ ภาษา แต่ไม่ระบุประเทศ หรือภูมิภาค วัฒนธรรมเฉพาะการเชื่อมโยงทั้ง กับภาษาและประเทศระบุอยู่

ตัวอย่าง: "DE" (ภาษากลาง) คือสำหรับภาษาเยอรมัน แต่ "de-AT" (เฉพาะ culture) สำหรับภาษาเยอรมันเท่านั้นถูกพูดในออสเตรีย ไม่สามารถใช้ cultures ที่เป็นกลางสำหรับการจัดรูปแบบ

ปัจจุบันเธรดและวัฒนธรรมรับรู้ของคลาส.NET Framework

คลาสและวิธีใน.NET Framework ไลบรารีที่เราคาดหวังว่าผลลัพธ์จะขึ้นอยู่กับภาษาทั้งหมดมีลักษณะการทำงานสองอยู่แล้วภายใน:

  • จะช่วยให้เราระบุรหัสวัฒนธรรมในขณะที่มีการป้อนอาร์กิวเมนต์เพื่อให้ผลผลิตจะขึ้นอยู่กับภาษาที่ระบุ นี้หรือไม่ก็

  • ถ้านี่คือพลาด (โดยทั่วไปมี), หน้าไพ่ต่าง ๆ คือ intelligent แต่คุณสมบัติ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. ถ้าคุณสมบัติหายไปมี เป็นวัฒนธรรมที่เว็บเซิร์ฟเวอร์ที่กำลังเรียกใช้อยู่ ซึ่งโดยปกติจะเป็นกลางวัฒนธรรมที่สอดคล้องกับภาษาของระบบปฏิบัติการ

แฟ้มทรัพยากร

แฟ้มทั้ง หมด.resx, .resource และแฟ้มที่มีแอตทริบิวต์สร้างการดำเนินการที่ตั้งค่าเป็นทรัพยากรที่ฝังตัวที่ถูกเพิ่มลงในโครงการ ASP.NET ใน Visual Studio .NET โดยอัตโนมัติคอมไพล์ และฝังลงในแอสเซมบลีของแอพลิเคชันเป็นส่วนหนึ่งของรายการนั้น นี่แม้แต่สามารถทำได้ด้วยตนเอง โดยใช้โปรแกรมอรรถประโยชน์การผู้สร้างแฟ้มทรัพยากร (RESGEN) โดยใช้พร้อมท์รับคำสั่ง Visual Studio .NET สำหรับข้อมูลเพิ่มเติม โปรดเยี่ยมชมเว็บไซต์ต่อไปนี้:

http://msdn2.microsoft.com/en-us/library/ccec7sz1(vs.71).aspxนี่เป็นแนวคิดทั่วไปที่เกี่ยวข้องเมื่อใดก็ ตามที่เราจำเป็นต้องจัดการทรัพยากรแอพลิเคชันที่ไม่เกี่ยวข้องกับการใช้โดยรวม อย่างไรก็ตาม เมื่อเราจะนำสากล เราควรใช้แอสเซมบลีดาวเทียม

แอสเซมบลีดาวเทียม

สามารถใช้แอสเซมบลีดาวเทียมในโครงการ ASP.NET เมื่อคุณตรวจสอบว่า ต่อไปนี้เป็นจริง:

  1. องค์ประกอบส่วนติดต่อผู้ใช้ทั้งหมดในแฟ้ม aspx ทั้งหมดที่จำเป็นต้องมี id และ runat =แอตทริบิวต์ของเซิร์ฟเวอร์

  2. เราสร้างแฟ้ม.resx ที่แยกต่างหาก แต่ละรายการต้องสอดคล้องกับแต่ละวัฒนธรรมที่เราต้องการให้แอพลิเคชันของเราเพื่อสนับสนุน

  3. เราต้องตัดสินใจว่า ชื่อทั่วไปสำหรับแฟ้มเหล่านี้ทั้งหมดสำหรับ 'สายอักขระ' เช่นกัน

  4. เราตั้งชื่อแฟ้ม.resx ที่แยกจากกัน ด้วยการต่อไปนี้ตั้งชื่อแบบแผนcommonfirstname languagecode-ภูมิภาค.resx (ตัวอย่างเช่น: Strings.de-AT.resx, Strings.en GB.resx)

  5. เราควรมีแฟ้มทรัพยากร
    commonfirstname.resx (Strings.resx) ที่มีทั้งหมดสายอักขระ ตามที่เราต้องแสดงในกรณีค่าเริ่มต้น

  6. เขียนโค้ดการตรวจหาภาษาของผู้ใช้ และการตั้งค่าคุณสมบัติ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

ความแตกต่างระหว่าง CurrentCulture และ CurrentUICulture

ในขณะที่เมธอดของคลาสที่ในSystem.Globalization namespace ขึ้นอยู่กับคุณสมบัติ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 โดยอัตโนมัติเลือกทรัพยากรที่ตรงกับ ตามลำดับดังนี้:

  • ถ้าแอสเซมบลีดาวเทียมที่พบกับวัฒนธรรมเข้าคู่กัน ทรัพยากรจากแอสเซมบลีที่ใช้

  • ถ้าแอสเซมบลีดาวเทียมที่พบกับวัฒนธรรมเป็นกลางที่ตรงกับCurrentUICultureทรัพยากรจากแอสเซมบลีที่ใช้

  • ถ้าไม่พบการจับคู่สำหรับCurrentUICultureมีใช้ทรัพยากรย้อนกลับที่เก็บอยู่ในแอสเซมบลีที่ปฏิบัติการได้

หมายเหตุ ซึ่งเป็นไปตามกระบวนการย้อนกลับการทรัพยากรเพิ่มเติม สำหรับข้อมูลเพิ่มเติม โปรดเยี่ยมชมเว็บไซต์ต่อไปนี้:

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

กำลังสร้างแอสเซมบลีดาวเทียมด้วยตนเอง:

ใช้แอสเซมบลีดาวเทียมนี้อยู่ที่ Visual Studio .NET สร้างแอสเซมบลีของตัวเอง Visual Studio .NET ไม่ทำแอสเซมบลีดาวเทียมที่คาดเดายากชื่อ โดยค่าเริ่มต้น อย่างไรก็ตามงาน ถ้าคุณต้องการเปลี่ยนตัวเลือกเหล่านี้ คุณจะต้องสร้างแอสเซมบลีดาวเทียมด้วยตนเอง สำหรับข้อมูลเพิ่มเติม โปรดเยี่ยมชมเว็บไซต์ต่อไปนี้:

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 และทำให้รหัสที่จำเป็นในการเข้าถึงทรัพยากรในขณะทำงาน

ตัวแก้ไขทรัพยากรที่มีจัดการ 2.0 .NET Studio ภาพรวมตัวแก้ไขทรัพยากรใหม่พร้อม ด้วยการสนับสนุนที่ดีสำหรับการสร้าง และการจัดการรายการของทรัพยากรที่รวมสตริ รูปภาพ แฟ้มภายนอก และอื่น ๆ ชนิดที่ซับซ้อน

สร้างทรัพยากรสำหรับแบบฟอร์มเว็บ นักพัฒนา Windows Forms แล้วหาประโยชน์ของ internationalization โดยอัตโนมัติ Visual Studio .NET 2005 เดี๋ยวนี้จะสนับสนุน internationalization อย่างรวดเร็ว โดยการสร้างทรัพยากรโดยอัตโนมัติสำหรับ ฟอร์มบนเว็บ ตัวควบคุมผู้ใช้ และเพจต้นแบบ

รันไทม์ของการสนับสนุนที่พัฒนาขึ้น อินสแตนซ์ ResourceManager จะสามารถเข้าถึงได้พร้อมกับรหัสเซิร์ฟเวอร์ผ่านอินเทอร์เฟซการเขียนโปรแกรมที่เข้าถึงได้ และที่มีการจัดการ โดยรันไทม์

นิพจน์การปรับภาษา นิพจน์ declarative สมัยใหม่สำหรับเว็บเพจที่สนับสนุนรายการทรัพยากรแมปเพื่อควบคุมคุณสมบัติ คุณสมบัติ HTML หรือขอบเขตเนื้อหาแบบคง นิพจน์เหล่านี้จะขยายได้ วิธีการควบคุมกระบวนการแนบเนื้อหาที่เป็นภาษาท้องถิ่นในการแสดงผล HTML เพิ่มเติมให้ด้วย

เลือกภาษาโดยอัตโนมัติ การจัดการการเลือกภาษาสำหรับคำขอแต่ละเว็บสามารถโดยอัตโนมัติคุณยังสามารถกำหนดลักษณะเบราว์เซอร์

แบบจำลองของผู้ให้บริการทรัพยากร แบบจำลองของผู้ให้บริการทรัพยากรใหม่ช่วยให้นักพัฒนาทรัพยากรโฮสต์ในแหล่งข้อมูลอื่นเช่นแฟ้มแบนและตารางฐานข้อมูล ในขณะที่แบบจำลองการเขียนโปรแกรมสำหรับการเข้าถึงทรัพยากรเหล่านั้นมีความสม่ำเสมอ

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีการใช้โดยรวมใน ASP.NET 2.0 แวะไปที่เว็บไซต์ต่อไปนี้:

คุณลักษณะของ ASP.NET 2.0 แปล: ใหม่วิธีการโปรแกรมประยุกต์เว็บ Localizing
http://msdn2.microsoft.com/en-us/library/ms379546(VS.80).aspx

บทสรุป

นั่นคือทั้งหมดในขณะนี้เกี่ยวกับปัญหาสากลใน ASP และ ASP.NET ฉันหวังว่า บทความนี้จะช่วยให้ลูกค้าไม่กี่แก้ไขปัญหาการใช้โดยรวมใน ASP และ ASP.NET ก่อนที่จะเข้าร่วมการติดต่อฝ่ายสนับสนุนของ Microsoft ฉันจะสิ้นสุด ด้วยคิดว่า ต่อไปนี้:

วไป และเมื่อใดก็ตามคุณกำลังพัฒนา นึกล้านของบุคคลที่คุณสามารถเพิ่มอำนาจทั่วโลก ทำให้โลกพร้อมวิธีแก้ไขปัญหาของคุณ เครื่องมือของ Microsoft และเทคโนโลยีช่วย internationalization ง่ายขึ้น"

เราจะตรวจจับอีกเดือนถัดไปกับหัวข้อน่าสนใจอีกครั้ง

ขอบคุณสำหรับเวลาของคุณ

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับปัญหาการใช้โดยรวมใน ASP และ ASP.NET ดูเว็บไซต์ต่อไปนี้ของ Microsoft:

SetLocale และ GetLocale ใน vbscript
http://msdn2.microsoft.com/en-us/library/5xf99h19.aspx

การใช้โดยรวมแต่ละขั้นตอน
http://msdn.microsoft.com/en-us/goglobal/bb688110

ไปที่ส่วนกลาง: Localizing Apps เว็บแบบไดนามิกกับ IIS 5.0 และ SQL Server
http://msdn.microsoft.com/msdnmag/issues/01/05/global/default.aspx

ไปที่ส่วนกลาง: ออกแบบโดยใช้ ASP เว็บไซต์ของคุณเพื่อสนับสนุนสากล
http://msdn.microsoft.com/msdnmag/issues/0700/localize/default.aspx

315616 วิธีการตรวจหาภาษาของไคลเอนต์ในเซิร์ฟเวอร์ที่ใช้งานอยู่ที่หน้าหน้าใน IIS
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

Toolkit แปลองค์กร - สำหรับการพัฒนาโปรแกรมประยุกต์ Microsoft ASP.NET ที่เป็นภาษาท้องถิ่น
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 ที่ระบุตัวระบุภาษาและรหัสการเรียงลำดับ สามารถใช้เพื่อระบุรูปแบบภูมิภาคที่เฉพาะเจาะจงสำหรับการแลกเปลี่ยนวัน / เวลา เป็นต้นควรถูกจัดรูปแบบตามนั้น

Localizability ความสามารถของโปรแกรมประยุกต์ในการนำเสนอเนื้อหาสำหรับต้อง/ระบบภาษา

แปล แปลเป็นกระบวนการแปลส่วนติดต่อผู้ใช้เป็นภาษาที่เฉพาะเจาะจงและ/หรือตำแหน่งที่ตั้ง

ชุดอักขระสัญลักษณ์ ชุดในที่อักขระจะประกอบด้วยอักขระอย่าง น้อยสองไบต์ เช่นภาษาญี่ปุ่น UTF-8 ยังอยู่ภายใต้ประเภทนี้ (Unicode ทางเทคนิคอยู่ในประเภทนี้ แต่ใน Windows มีประเภทของตัวเอง)

Unicode 2 ไบต์เข้ารหัสโครงร่าง Windows ใช้ Unicode ภายใน APIs ใด ๆ โดยเฉพาะสำหรับ Unicode เป็น signified โดย "W" ในส่วนท้ายของชื่อฟังก์ชัน เรียกอีกอย่างว่าความกว้างอักขระ ไม่ตรงกันจากโปรแกรมประยุกต์เว็บ

UTF-8 การเข้ารหัสอักขระที่สามารถแสดงอักขระตาม 1-6 ไบต์ ใน Windows ช่วงคือ 1-3 ไบต์ ไม่ได้รับการสนับสนุนภายใต้ NT4 สำหรับโปรแกรมประยุกต์เว็บ
สำหรับข้อมูลเพิ่มเติม ให้คลิกหมายเลขบทความต่อไปนี้เพื่อดูบทความในฐานความรู้ของ Microsoft:

สนับสนุน UTF8 175392


การตั้งค่าความกว้างของอักขระ ใช้นามแฝงสำหรับ Unicode นอกจากนี้ยัง เรียกว่า DBCS (ชุดอักขระไบต์คู่), UCS 2, UTF 16

เป็นเสมอ รู้สึกฟรีเพื่อส่งความคิดเห็นบนหัวข้อคุณต้องได้รับการจัดการในอนาคตคอลัมน์ หรือ ในฐานข้อมูลองค์ความรู้โดยการ
ขอให้สำหรับนั้นแบบฟอร์ม

ต้องการความช่วยเหลือเพิ่มเติมหรือไม่

ต้องการตัวเลือกเพิ่มเติมหรือไม่

สํารวจสิทธิประโยชน์ของการสมัครใช้งาน เรียกดูหลักสูตรการฝึกอบรม เรียนรู้วิธีการรักษาความปลอดภัยอุปกรณ์ของคุณ และอื่นๆ

ชุมชนช่วยให้คุณถามและตอบคําถาม ให้คําติชม และรับฟังจากผู้เชี่ยวชาญที่มีความรู้มากมาย

ข้อมูลนี้เป็นประโยชน์หรือไม่

คุณพึงพอใจกับคุณภาพภาษาเพียงใด
สิ่งที่ส่งผลต่อประสบการณ์ใช้งานของคุณ
เมื่อกดส่ง คำติชมของคุณจะถูกใช้เพื่อปรับปรุงผลิตภัณฑ์และบริการของ Microsoft ผู้ดูแลระบบ IT ของคุณจะสามารถรวบรวมข้อมูลนี้ได้ นโยบายความเป็นส่วนตัว

ขอบคุณสำหรับคำติชมของคุณ!

×