存储波兰人物mysql

时间:2012-11-25 00:17:36

标签: mysql database utf-8

我正在尝试保存“ą”,“ć”,“ł”等字符,但它们会作为问号保存在数据库中(我使用phpMyAdmin保存它们)。

数据库和表的排序规则是utf8_bin。

3 个答案:

答案 0 :(得分:9)

尝试将排序规则更改为:

utf8_unicode_ci 

utf8_polish_ci 

您可以参考:http://mysql.rjweb.org/doc.php/charcoll

您也可以尝试使用以下方法更改特定列:

ALTER TABLE tbl MODIFY COLUMN txt TEXT CHARACTER SET utf8

答案 1 :(得分:1)

您还可以将列从vchar更改为nvchar。然后在向DB中插入值时记得ad N,如下所示:N'ŁÓDŹ'(在持久性框架中你应该有某种NString表示)

来自文档:

  

Nvarchar存储UNICODE数据。如果您有存储UNICODE或多语言数据的要求,则可以选择nvarchar。 Varchar存储ASCII数据,应该是正常使用的数据类型。关于内存使用情况,nvarchar每个字符使用2个字节,而varchar使用1个

答案 2 :(得分:1)

我已经搜索了很多,最后,我得到了一个解决方案:

ALTER TABLE tableName MODIFY COLUMN columnName VARCHAR(64) CHARACTER SET `binary`;

您可以更改VARCHAR(64)以符合您的需求。我希望这可以帮助别人。 请注意,我不仅要求存储波兰语字符,还要存储法语和西班牙语字符。因此上述解决方案可能仅适用于波兰字符。