ข้ามไปยังเนื้อหา
LeedyBox
สนับสนุน

อักขระเต็มความกว้างและครึ่งความกว้าง

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 abcABC abc
ตัวเลข01230123
สัญลักษณ์ 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) ที่กว้างเท่าคันจิหนึ่งตัว เมื่อแปลงจะได้ช่องว่างปกติหนึ่งช่อง ไม่ใช่สอง

ทำไมแบบฟอร์มญี่ปุ่นไม่รับคาตาคานะของฉัน

แบบฟอร์มอาจต้องการคาตาคานะเต็มความกว้างแต่คุณพิมพ์แบบครึ่งความกว้าง หรือกลับกัน หรืออาจไม่รับตัวเล็กอย่าง ァ และ ッ อ่านคำแนะนำข้างช่องกรอก