คำตอบของคุณคือคุณสามารถกำหนดค่าโดยการตั้งค่า MySql ในคำตอบของฉันอาจมีบางอย่างที่ไม่อยู่ในบริบท แต่สิ่งนี้ก็เป็นความช่วยเหลือสำหรับคุณเช่นกัน
วิธีกำหนดค่าCharacter Set
และCollation
.
สำหรับแอปพลิเคชันที่จัดเก็บข้อมูลโดยใช้ชุดอักขระ MySQL เริ่มต้นและการเรียง ( latin1, latin1_swedish_ci
) ไม่จำเป็นต้องมีการกำหนดค่าพิเศษ หากแอปพลิเคชันต้องการการจัดเก็บข้อมูลโดยใช้ชุดอักขระหรือการเรียงลำดับอื่นคุณสามารถกำหนดค่าข้อมูลชุดอักขระได้หลายวิธี:
- ระบุการตั้งค่าอักขระต่อฐานข้อมูล ตัวอย่างเช่นแอปพลิเคชันที่ใช้ฐานข้อมูลเดียวอาจต้องการ
utf8
ในขณะที่แอปพลิเคชันที่ใช้ฐานข้อมูลอื่นอาจต้องใช้ sjis
- ระบุการตั้งค่าอักขระเมื่อเริ่มต้นเซิร์ฟเวอร์ สิ่งนี้ทำให้เซิร์ฟเวอร์ใช้การตั้งค่าที่กำหนดสำหรับแอปพลิเคชันทั้งหมดที่ไม่ได้ทำการจัดเตรียมอื่น ๆ
- ระบุการตั้งค่าอักขระในเวลากำหนดค่าหากคุณสร้าง MySQL จากซอร์ส สิ่งนี้ทำให้เซิร์ฟเวอร์ใช้การตั้งค่าที่กำหนดสำหรับแอปพลิเคชันทั้งหมดโดยไม่ต้องระบุเมื่อเริ่มต้นเซิร์ฟเวอร์
ตัวอย่างที่แสดงไว้ที่นี่สำหรับคำถามของคุณในการตั้งค่าชุดอักขระ utf8 นอกจากนี้ยังตั้งค่าการเปรียบเทียบเพื่อประโยชน์มากขึ้น ( utf8_general_ci
collation`)
ระบุการตั้งค่าอักขระต่อฐานข้อมูล
CREATE DATABASE new_db
DEFAULT CHARACTER SET utf8
DEFAULT COLLATE utf8_general_ci;
ระบุการตั้งค่าอักขระเมื่อเริ่มต้นเซิร์ฟเวอร์
[mysqld]
character-set-server=utf8
collation-server=utf8_general_ci
ระบุการตั้งค่าอักขระในเวลากำหนดค่า MySQL
shell> cmake . -DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci
หากต้องการดูค่าของชุดอักขระและตัวแปรระบบการเปรียบเทียบที่ใช้กับการเชื่อมต่อของคุณให้ใช้คำสั่งเหล่านี้:
SHOW VARIABLES LIKE 'character_set%';
SHOW VARIABLES LIKE 'collation%';
นี่อาจเป็นคำตอบที่ยาว แต่มีทุกวิธีที่คุณสามารถใช้ได้ หวังว่าคำตอบของฉันจะเป็นประโยชน์สำหรับคุณ สำหรับข้อมูลเพิ่มเติมhttp://dev.mysql.com/doc/refman/5.7/en/charset-applications.html