在MySQL 5.6中存储特殊字符

时间:2015-04-08 23:02:46

标签: java mysql utf-8 special-characters

我的应用程序接受MySQL数据库中的各种字符。 一个这样的例子是:

ã ã‚Œã§ã‚‚ç°¡å˜ï¼Twitter自動ã¤ã¶ã‚„ã設定ãŒã§ãるサイトï¼AutoTweet(オートツイート)! CH1J2tthG6 定期的ã«ã¤ã¶ã‚„ãbotã‚„URLã®å®£ä¼ã«ã‚‚使ãˆã¾ã™ï¼ 2318999869;

你能否推荐我应该用什么来存储这些值? 默认情况下,MySQL使用latin1_swedish_ci,我相信它不会正确存储这些字符。

我的目的是只获取这些字符,而不是用它们进行排序。因此强烈建议进行性能调整。

谢谢!

`

1 个答案:

答案 0 :(得分:1)

不是"整理"问题;相反,它是一个"字符集"问题

可能你

  • 在插入文本时对文本进行了utf8编码 - 数据来自哪里?
  • SET NAMES latin1(或等价物) - 您使用什么类型的代码进行INSERT?您使用的是什么版本的 ?和
  • 将字节存储到声明为CHARACTER SET latin1的列中 - 让我们看SHOW CREATE TABLE

假设所有匹配,则解决方案首先通过2步ALTER机制修复数据,以将latin1列转换为utf8而不更改字节。它被描述为in my CHARSET blog。 (ALTERs的细节取决于SHOW CREATE TABLE。)

(如果他们不匹配,我需要进一步挖掘。)

在此之后,可能(或可能不)存在如何选择数据以解决问题的问题。请务必将SET NAMES设置为输出所需的编码(utf8或latin1)。

修改

嗯......我不认识这些角色中的大多数都是常规修剪,所以让我们进一步挖掘。