ບັນຫາພາສາລາວໃນ Mysql Server ແລ້ວເປັນເຄື່ອງຫມາຍ ???????
ປັນຫານີ້ລຸງໂອ້ດ ເຄີຍພົບເຫັນມາຕັ້ງແຕ່ສະໄຫມເປັນ ບ່າວພຸ້ນລະ ສະໄຫມນັ້ນຂຽນ PHP+MySQL ແລ້ວເປັນຫມາຍຖາມ ລຸງກະໄດ້ແກ້ດ້ວຍການ
ເພີ່ມຄຳສັ່ງໃນການ Connect ໃຫ້ປ່ຽນ Encode ເປັນ utf8
ດ້ວຍຄຳສັ່ງລຸ່ມນີ້ ໄປໃສ່ໄວ້ໃນ File db connection
mysql_query("SET character_set_client =utf8");
mysql_query("SET character_set_connection = utf8");
mysql_query("SET character_set_database =utf8 ");
mysql_query("SET character_set_results = utf8");
mysql_query("SET character_set_server =utf8");
ແຕ່ມາເທື່ອນີ້ ລຸງໄດ້ ຮັບພາລະກິດໃນການແກ້ໄຂປັນຫາ ພາສາລາວໃນ Java Tomcat6 + MySQL ເຊິ່ງເປັນລົບທີ່ຜ່ານການ Compile ມາແລ້ວລຸງເລີຍຫາບໍ່ອນແກ້ Connection ບໍ່ເປັນ ສຸດໄດ້ ກໍເລີຍລອງເຮັດການ ປ່ຽນການຕັ້ງຄ່າການເຊື່ອມຕໍ່ ແລະສັ່ງໃຫ້ມັນປ່ຽນຖານຂໍ້ມູນເປັນ utf8 ໃຫ້ຫມົດດັ່ງນີ້:
ເພີ່ມຄຳສັ່ງເຂົ້າໄປໃນໄຟລ
/etc/mysql/my.cnf
ດັ່ງນີ້
[mysqld]
character-set-server=utf8
collation-server = utf8_unicode_ci
init-connect='SET NAMES utf8'
init_connect='SET collation_connection = utf8_unicode_ci'
skip-character-set-client-handshake
ສັ່ງ Restart mysql
ຫາກໃນ RH
service mysql restart
ໃນ Debian
/etc/init.d/mysql restart
ຂັ້ນຕອນການໃຊ້ຄຳສັ່ງ ປັບຖານຂໍ້ມູນ
ກ່ອນອື່ນເຊື່ອມໄປຫາຖານຂໍ້ມູນກ່ອນ
mysql -uroot -pລະຫັດຂອງຖານຂໍ້ມູນ
ຈາກນັ້ນກໍ ສັ່ງໃຫ້ ປ່ຽນ character set ແລະ collation ຂອງ database:
ALTER DATABASE dbname CHARACTER SET utf8 COLLATE utf8_general_ci;
ປ່ຽນ character set ແລະ collation ຂອງ database:
ALTER TABLE tablename CHARACTER SET utf8 COLLATE utf8_general_ci;
ຈາກນັ້ນກໍລອງ ສະແດງ character ແລະ collation ອອກມາເບິ່ງ
mysql> show variables like “%character%”;show variables like “%collation%”;
ຈະໄດ້ ປະມານນີ້
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)
+———————-+—————–+
| Variable_name | Value |
+———————-+—————–+
| collation_connection | utf8_general_ci |
| collation_database | utf8_general_ci |
| collation_server | utf8_general_ci |
+———————-+—————–+
3 rows in set (0.00 sec)
ອີກເທື່ອນຶ່ງ ສຳລັບ ການຂຽນໂປຣແກຣມ ດ້ວຍພາສາ Java ແມ່ນສາມາດເພິ່ມ
?useUnicode=true&characterEncoding=utf-8″
ໃສ່ຕໍ່ຈາກຊື່ຂອງຖານຂໍ້ມູນ
ໂຕຢ່າງ
ກ່ອນ ຫນ້າ :
con = DriverManager.getConnection("jdbc:mysql:///dbname", "user", "pass");
ໃຫ້ປ່ຽນເປັນ (working):
con = DriverManager.getConnection("jdbc:mysql:///dbname?useUnicode=true&characterEncoding=utf-8", "user", "pass");
Credit:
http://os555.blogspot.com/2008/07/php-mysql-server.html ອັນນີ້ຂຽນໄວ້ແຕ່ປີ 2008
http://kb.mediatemple.net/questions/138/Default+MySQL+character+set+and+collation#gs