อักขระเต็มความกว้างและครึ่งความกว้าง
ABC123 กับ ABC123 ดูแทบเหมือนกัน แต่สำหรับคอมพิวเตอร์เป็นอักขระคนละตัว คู่มือนี้อธิบายที่มาของอักขระเต็มความกว้าง (full-width) และครึ่งความกว้าง (half-width) เหตุที่แบบฟอร์มและการค้นหาสะดุด วิธีที่คาตาคานะครึ่งความกว้างเขียน ガ ด้วยสองอักขระ และอักขระหน้าตาคล้ายกันที่ไม่ได้เป็นคู่กัน
ทำไมจึงมีสองความกว้าง
ในข้อความภาษาญี่ปุ่น จีน และเกาหลี อักขระแต่ละตัวกินพื้นที่หนึ่งช่องสี่เหลี่ยม คอมพิวเตอร์ญี่ปุ่นยุคแรกมีชุดอักขระสองแบบ คือชุดหนึ่งไบต์ JIS X 0201 ที่มีอักษรละติน ตัวเลข และคาตาคานะจำนวนหนึ่งซึ่งกินพื้นที่ครึ่งช่อง และชุดสองไบต์อย่าง JIS X 0208 ที่มีคันจิ คานะ และตัวอักษรกับตัวเลขอีกชุดหนึ่งที่กินเต็มช่อง มาตรฐาน KS X 1001 ของเกาหลีก็มีอักษรละตินแบบเต็มความกว้างเช่นกัน
Unicode เก็บทั้งสองชุดไว้เพื่อให้แปลงข้อความเก่าได้โดยไม่สูญหาย อักขระ ASCII แบบเต็มความกว้าง (U+FF01–FF5E) และคาตาคานะครึ่งความกว้าง (U+FF61–FF9F) อยู่ในบล็อก "Halfwidth and Fullwidth Forms" และฐานข้อมูลอักขระ Unicode บันทึกว่าแต่ละตัวตรงกับอักขระปกติตัวใด ตัวแปลงใช้ข้อมูลนี้
อักขระที่มีทั้งแบบเต็มและครึ่งความกว้าง
| ประเภท | เต็มความกว้าง | ครึ่งความกว้าง |
|---|---|---|
| อักษรละติน | ABC abc | ABC abc |
| ตัวเลข | 0123 | 0123 |
| สัญลักษณ์ ASCII | !?@#()-/ | !?@#()-/ |
| ช่องว่าง | U+3000 (ช่องว่างแบบอักษรภาพ) | U+0020 |
| เครื่องหมายสกุลเงิน ฯลฯ | ¥ ¢ £ | ¥ ¢ £ |
| คาตาคานะ | カタカナ ガ パ | カタカナ ガ パ |
| เครื่องหมายวรรคตอนญี่ปุ่น | 。「」、・ー | 。「」、・ー |
คันจิ ฮิรางานะ และพยางค์ฮันกึลมีความกว้างแบบเดียว ไม่มีฮิรางานะครึ่งความกว้าง และคาตาคานะตัวเล็ก ヵ, ヶ, ヮ กับตัวอักษรเก่า ヰ และ ヱ ก็ไม่มีแบบครึ่งความกว้าง อักษรไทยไม่อยู่ในบล็อกนี้จึงไม่ได้รับผลกระทบ
เมื่อไรความต่างนี้สร้างปัญหา
- แบบฟอร์ม ช่องที่รับเฉพาะตัวเลขจะไม่รับ 081 และเบอร์โทรศัพท์ รหัสไปรษณีย์ หรือหมายเลขบัตรที่คัดลอกจากเว็บไซต์ญี่ปุ่นมักเป็นแบบเต็มความกว้าง แปลงเป็นครึ่งความกว้างก็แก้ได้
- การค้นหาและข้อมูลซ้ำ การค้นหา ABC อาจไม่พบ ABC และรายชื่อลูกค้าอาจเก็บชื่อเดียวกันสองครั้งในสองความกว้าง
- หน้าตา อักษรเต็มความกว้างในข้อความภาษาไทยดูห่าง ส่วนคาตาคานะครึ่งความกว้างในข้อความญี่ปุ่นดูอัดแน่น
- ระบบที่มีกฎของตนเอง แบบฟอร์มญี่ปุ่นบางแห่งให้กรอกคำอ่านชื่อ (フリガナ) เป็นคาตาคานะเต็มความกว้าง บางแห่งเป็นฮิรางานะ และระบบเก่าบางระบบรับเฉพาะคาตาคานะครึ่งความกว้าง ให้ทำตามคำแนะนำของแบบฟอร์ม
คาตาคานะครึ่งความกว้างกับเครื่องหมายเสียง
คาตาคานะครึ่งความกว้างไม่มีตัวอักษรเสียงก้องแยกต่างหาก ガ เขียนด้วยสองอักขระ คือ カ ตามด้วยเครื่องหมาย ゙ ส่วน パ เขียนด้วย ハ ตามด้วย ゚ ตัวแปลงที่ดีจะรวมคู่นี้เป็นตัวอักษรเต็มความกว้างตัวเดียว และแยกออกอีกครั้งเมื่อแปลงกลับ จำนวนอักขระจึงเปลี่ยน: ガッコウ มีห้าอักขระ ガッコウ มีสี่
เครื่องหมายที่รวมกับตัวอักษรข้างหน้าไม่ได้ เช่นใน ア゙ จะยังเป็นเครื่องหมายแยก (ア゛) ヴ กลายเป็น ヴ ส่วน ヷ และ ヺ กลายเป็น ヷ และ ヺ
อักขระหน้าตาคล้ายที่ไม่ใช่คู่กัน
| อักขระ | คืออะไร | มีคู่ครึ่งความกว้างไหม |
|---|---|---|
| ~ (U+FF5E) | ทิลดาเต็มความกว้าง | มี: ~ |
| 〜 (U+301C) | เส้นคลื่น เครื่องหมายวรรคตอนญี่ปุ่น | ไม่มี |
| - (U+FF0D) | ยัติภังค์-ลบ เต็มความกว้าง | มี: - |
| ー (U+30FC) | เครื่องหมายสระเสียงยาวของคาตาคานะ | มีแค่ ー (คาตาคานะครึ่งความกว้าง) |
| " ' | อัญประกาศตรงเต็มความกว้าง | มี: " ' |
| “ ” ‘ ’ | อัญประกาศโค้ง | ไม่มี |
แบ็กสแลชเป็นกรณีพิเศษ JIS X 0201 วางเครื่องหมายเยนไว้ที่รหัสที่ ASCII ใช้แทนแบ็กสแลช ฟอนต์ญี่ปุ่นบางตัวจึงยังวาดแบ็กสแลชเป็น ¥ อักขระเป็นตัวเดียวกัน ต่างกันแค่รูปที่แสดง
ฮิรางานะและคาตาคานะ
ฮิรางานะทุกตัวตั้งแต่ ぁ ถึง ゖ มีคาตาคานะชื่อเดียวกัน และ Unicode วางไว้ห่างกัน 96 ตำแหน่งพอดี การแปลงจึงแม่นยำ: やまだ たろう กลายเป็น ヤマダ タロウ เครื่องหมายเสียงยาว ー ใช้ร่วมกันทั้งสองแบบจึงคงเดิม คาตาคานะที่ไม่มีฮิรางานะคู่ เช่น ヷ จะยังเป็นคาตาคานะ
สำหรับนักพัฒนา: การทำ Normalization เปลี่ยนมากกว่า
รูปแบบ Normalization ของ Unicode แบบ NFKC ก็เปลี่ยนอักษรเต็มความกว้างเป็นครึ่งความกว้างและรวม ガ เป็น ガ ได้ แต่ในขณะเดียวกันก็เปลี่ยนอักขระอื่นอีกมาก: ① เป็น 1, № เป็น No, ㈱ เป็น (株) และ ㍻ เป็น 平成 ใช้เมื่อคุณต้องการทั้งหมดนั้น เช่น เพื่อเทียบคีย์ค้นหา ถ้าต้องการเปลี่ยนแค่ความกว้าง ให้แปลงเฉพาะคู่ความกว้างและคงส่วนอื่นไว้
คำถามที่พบบ่อย
ทำไมแบบฟอร์มบอกว่าหมายเลขของฉันไม่ถูกต้องทั้งที่ดูถูกแล้ว
เป็นไปได้ว่ามีตัวเลขเต็มความกว้างที่คัดลอกมาจากหน้าอื่น ลองใส่ในตัวแปลงด้วยตัวเลือก "ครึ่งความกว้าง" แล้ววางใหม่
การแปลงเป็นครึ่งความกว้างเปลี่ยนอักษรไทยหรือคันจิไหม
ไม่ อักษรไทย คันจิ ฮิรางานะ และฮันกึลไม่มีแบบครึ่งความกว้าง จึงคงไว้ตามเดิม
ช่องว่างแบบอักษรภาพเท่ากับช่องว่างสองช่องไหม
ไม่ เป็นอักขระเดียว (U+3000) ที่กว้างเท่าคันจิหนึ่งตัว เมื่อแปลงจะได้ช่องว่างปกติหนึ่งช่อง ไม่ใช่สอง
ทำไมแบบฟอร์มญี่ปุ่นไม่รับคาตาคานะของฉัน
แบบฟอร์มอาจต้องการคาตาคานะเต็มความกว้างแต่คุณพิมพ์แบบครึ่งความกว้าง หรือกลับกัน หรืออาจไม่รับตัวเล็กอย่าง ァ และ ッ อ่านคำแนะนำข้างช่องกรอก