เมนู

รหัสประเทศและรหัสเขตการปกครองตามมาตรฐาน ISO

รหัสประเทศและรหัสเขตการปกครองตามมาตรฐาน ISO มีหลายชุดที่หน้าตาคล้ายกันแต่ใช้ต่างกัน บทความนี้อธิบายความต่างระหว่างรหัสสองตัวอักษร สามตัวอักษร และรหัสตัวเลข

เผยแพร่เมื่อ

  • ข้อมูลทดสอบ
  • มาตรฐาน

รหัสประเทศและรหัสเขตการปกครองตามมาตรฐาน ISO เป็นสิ่งที่ทีมพัฒนาสัมผัสทุกวันโดยไม่รู้ตัว ทุกครั้งที่เลือกประเทศจากรายการแล้วระบบส่งค่ารหัสสองตัวอักษรขึ้นไปบนเครือข่าย ทุกครั้งที่เก็บที่อยู่ลงฐานข้อมูลพร้อมรหัสรัฐหรือจังหวัด และทุกครั้งที่ระบบปฏิเสธข้อมูลเพราะรหัสไม่รู้จัก ปัญหาส่วนใหญ่เกิดจากการที่รหัสหลายชุดหน้าตาคล้ายกันแต่ทำหน้าที่คนละอย่าง บทความนี้จะแยกชุดรหัสเหล่านี้ออกจากกันให้เห็นชัด และชี้จุดที่ระบบมักใช้ผิด

มาตรฐานรหัสประเทศมีกี่แบบ?

มาตรฐานสากลว่าด้วยรหัสแทนชื่อประเทศกำหนดรหัสไว้สามแบบสำหรับประเทศและเขตปกครองเดียวกัน แบบแรกคือรหัสตัวอักษรสองตัว แบบที่สองคือรหัสตัวอักษรสามตัว และแบบที่สามคือรหัสตัวเลขสามหลัก ทั้งสามแบบแทนรายการประเทศชุดเดียวกัน ต่างกันเพียงความยาวและความจำง่าย

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

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

อีกส่วนที่เกี่ยวข้องคือรหัสสำหรับเขตปกครองย่อย ซึ่งในมาตรฐานชุดเดียวกันนี้ใช้รหัสประเทศนำหน้าตามด้วยเครื่องหมายขีดกลาง แล้วตามด้วยรหัสเฉพาะของเขตนั้น รหัสชุดนี้ทำให้เราระบุจังหวัด รัฐ หรือมณฑลได้อย่างไม่กำกวมในระดับสากล

รหัสเขตการปกครองต่างจากรหัสไปรษณีย์อย่างไร?

ความต่างพื้นฐานคือรหัสเขตการปกครองระบุพื้นที่การปกครองในเชิงการเมืองและการบริหาร ส่วนรหัสไปรษณีย์ระบุพื้นที่นำจ่ายในเชิงการขนส่ง สองสิ่งนี้ไม่ซ้อนทับกันเสมอ บางพื้นที่หนึ่งรหัสไปรษณีย์อาจครอบคลุมหลายเขตการปกครอง และบางเขตการปกครองอาจใช้หลายรหัสไปรษณีย์

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

ความต่างข้อที่สามคือการใช้งานเฉพาะทาง หลายประเทศมีชุดรหัสของตนเองสำหรับงานสถิติ งานภาษี หรืองานทะเบียนราษฎร ซึ่งหน้าตาอาจคล้ายรหัสมาตรฐานสากลแต่ไม่ใช่ชุดเดียวกัน การนำชุดรหัสภายในของประเทศหนึ่งไปใช้แทนชุดสากลจะทำให้ข้อมูลสับสนเมื่อต้องแลกเปลี่ยนกับระบบภายนอก

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

ควรใช้รหัสสองตัวอักษรหรือสามตัวอักษร?

รหัสสองตัวอักษรเหมาะกับงานที่แสดงบนหน้าจอและงานที่ต้องประหยัดพื้นที่ เพราะสั้นและจำง่าย ส่วนรหัสสามตัวอักษรเหมาะกับงานที่ต้องอ่านด้วยตาในเอกสารหรือระบบที่ต้องการลดความกำกวม

ในทางปฏิบัติ ระบบส่วนใหญ่เลือกเก็บรหัสสองตัวอักษรเป็นค่าหลัก เพราะเป็นรูปแบบที่ผู้ให้บริการภายนอกนิยมใช้ และเป็นสิ่งที่เห็นในโดเมนระดับประเทศและในรหัสเขตการปกครอง

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

สำหรับรหัสตัวเลขสามหลัก ควรเก็บไว้สำหรับกรณีที่ต้องแลกเปลี่ยนกับระบบที่บังคับใช้ตัวเลขเท่านั้น และควรมีตารางแปลงที่ทดสอบได้ ไม่ใช่การเดาจากชื่อของประเทศ

  • รหัสสองตัวอักษร: เหมาะกับงานที่แสดงบนหน้าจอและงานที่ต้องประหยัดพื้นที่ เพราะสั้นและจำง่าย
  • รหัสสามตัวอักษร: เหมาะกับงานที่ต้องอ่านด้วยตาในเอกสารหรือระบบที่ต้องการลดความกำกวม
  • ค่าหลักที่ระบบส่วนใหญ่นิยมเก็บ: รหัสสองตัวอักษร เพราะเป็นรูปแบบที่ผู้ให้บริการภายนอกนิยมใช้
  • จุดที่ต้องระวัง: ห้ามใช้รหัสทั้งสองแบบปนกันในช่องเดียวกันโดยไม่มีเครื่องหมายบอกว่ากำลังใช้แบบใด

ประเทศหนึ่งมีเขตการปกครองรหัสเดียวหรือหลายรหัส?

มีได้หลายรหัส และจำนวนไม่เท่ากันในแต่ละประเทศ ประเทศขนาดเล็กอาจมีเขตการปกครองเพียงไม่กี่เขต ในขณะที่ประเทศขนาดใหญ่มีเขตการปกครองหลายสิบเขต และในหลายกรณีมีระบบซ้อนกันหลายระดับ

ความซับซ้อนที่พบบ่อยคือเขตการปกครองที่มีชื่อเดียวแต่มีหลายระดับ เช่นชื่อที่ใช้ทั้งกับจังหวัดและกับเมืองหลักของจังหวัดนั้น ผลคือการค้นหาด้วยชื่อจะได้ผลลัพธ์หลายรายการที่ผู้ใช้ต้องเลือกเอง

ปัญหาอีกประการคือความไม่คงที่ เขตการปกครองสามารถรวม แยก หรือเปลี่ยนชื่อได้ตามการปรับปรุงการบริหารประเทศ ซึ่งหมายความว่าตารางรหัสในระบบของคุณมีอายุการใช้งาน และต้องมีวิธีอัปเดตที่ไม่ทำให้ข้อมูลเดิมเสียหาย

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

เลือกไม่ระบุเขตการปกครองได้หรือไม่?

ได้ และในหลายกรณีควรอนุญาต เพราะผู้ใช้บางคนไม่รู้ว่าพื้นที่ของตนจัดอยู่ในเขตการปกครองใดตามนิยามของทางการ โดยเฉพาะผู้ที่เพิ่งย้ายเข้ามาอยู่ใหม่ หรือผู้ที่อยู่ในพื้นที่ซึ่งการแบ่งเขตมีการเปลี่ยนแปลง

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

อย่างไรก็ตาม บางระบบจำเป็นต้องมีเขตการปกครองเพื่อคำนวณอัตราค่าบริการหรือภาษี ในกรณีนั้นควรกำหนดความจำเป็นตามประเทศปลายทาง ไม่ใช่กำหนดเหมือนกันทั้งโลก

ควรมีค่าที่ผู้ใช้เลือกได้เพื่อบอกว่าไม่ทราบ বাไม่แน่ใจ แทนที่จะปล่อยว่างแล้วให้ระบบเดาเองว่าเป็นความผิดพลาดของผู้ใช้

สำหรับนักพัฒนา: ออกแบบคลังรหัสประเทศให้ทนทาน

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

ข้อที่สองคือแยกมุมมองผู้ใช้ออกจากมุมมองระบบ ตารางเดียวควรให้บริการได้ทั้งการแสดงชื่อประเทศในภาษาของผู้ใช้ และการส่งค่ารหัสขึ้นเครือข่าย โดยไม่ต้องมีตารางที่สองสำหรับแต่ละภาษา

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

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

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

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

ก้าวต่อไป

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

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

อ่านต่อ

บทความเกี่ยวกับ เครื่องมือสร้างที่อยู่ปลอม

บทความเกี่ยวกับ เครื่องมือสร้างที่อยู่ปลอม

รายการนี้แสดงเฉพาะบทความในหัวข้อของหน้านี้