【问题标题】:MySQL - storing characters in different language or special symbolsMySQL - 以不同的语言或特殊符号存储字符
【发布时间】:2010-03-25 19:17:17
【问题描述】:

我需要在 MySQL 中创建一个表来存储世界上不同国家的不同货币符号。这些符号使用不同的语言,没有被插入到数据库中,它会抛出类似

的错误
incorrect string value xd8\x8b

样本数据是:

插入国家(国家名称、货币名称、货币代码、货币符号)值 ('阿富汗','阿富汗人','AFN','؋'), ('Aruba','Guilders','AWG','ƒ'), ('Azerbaijan','New Manats','AZN','ман'), ('保加利亚','列瓦','BGN','лв'), ('哥斯达黎加','科隆','CRC','₡'), ('古巴','比索','CUP','₱'), ('Cyprus','Euro','EUR','€'), ('捷克共和国','科鲁尼','CZK','Kč'), ('Ghana','Cedis','GHC','¢'), ('伊朗','里亚尔','IRR','﷼'), ('以色列','新谢克尔','ILS','₪'), ('日本','日元','日元','¥'), ('哈萨克斯坦','坚戈','KZT','лв'), ('韩国','韩元','KPW','₩'), ('Laos','Kips','LAK','₭'), ('马其顿','代纳尔','MKD','ден'), ('蒙古','图格里克','MNT','₮'), ('尼日利亚','奈拉斯','NGN','₦'), ('巴基斯坦','卢比','PKR','₨'), ('俄罗斯','卢布','RUB','руб'), ('越南','东','VND','₫'), ('也门','里亚尔','YER','﷼');

我使用的是 MySQL 5.1.22,这是当前的表结构:

创建表`国家`( `country_id` int(11) NOT NULL AUTO_INCREMENT, `country_name` varchar(100) 默认为空, `currency_name` varchar(100) 默认为空, `currency_code` varchar(20) 默认为空, `currency_symbol` varchar(20) 默认为空, `date_created` 日期时间 DEFAULT NULL, `last_modified` 日期时间默认为 NULL, 主键(`country_id`) ) 引擎=InnoDB AUTO_INCREMENT=48 默认字符集=latin1;

只是将 CHARSET 更改为其他内容吗?

【问题讨论】:

    标签: mysql


    【解决方案1】:

    是的。将字符集更改为 UTF8。

    【讨论】:

    • 谢谢 - 我创建了一个 CHARSET 设置为 UTF8 的新表 - 仍然没有插入某些行,例如阿富汗、阿塞拜疆、保加利亚、哥斯达黎加等货币。
    • @Gublooo 这些符号也必须是 utf-8 格式,并且您必须在连接后立即向服务器发送 SET NAMES utf8 查询。
    • 弹片 - 所以你的说法 - 例如插入日元符号 - 我必须输入 UTF-8 值,如 0xC2,0xA5 - 如果是这样的话 - 嗯 - 当我检索此数据并显示在浏览器我需要做任何特别的事情还是会显示为日元符号 - 谢谢
    • 对不起,我的错误 - 我将表格字符集更改为 UTF8,但列仍然是 latin1 - 更改它们后,我可以插入符号。感谢您的帮助
    猜你喜欢
    • 2017-01-01
    • 2023-03-26
    • 1970-01-01
    • 1970-01-01
    • 2017-11-04
    • 2015-06-14
    • 2023-03-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多