UTF 8中向MYSQL插入数据的问题
我有一组查询,我尝试使用以下命令在mysql服务器中运行:UTF 8中向MYSQL插入数据的问题,mysql,unix,encoding,utf-8,Mysql,Unix,Encoding,Utf 8,我有一组查询,我尝试使用以下命令在mysql服务器中运行: mysql -ufourint -pjabberwocky -hdb1 cafe < /tmp/bhasha_templates.txt 我已经确保我的DB表也在排序规则\u NAME:utf8\u general\u ci中,列也是如此 但当我在应用程序中查看相同内容时,我可以看到如下文本: शहर का मारà¥à¤—दरà¥à¤¶à¤• Bangalore मार
mysql -ufourint -pjabberwocky -hdb1 cafe < /tmp/bhasha_templates.txt
我已经确保我的DB表也在排序规则\u NAME:utf8\u general\u ci中,列也是如此
但当我在应用程序中查看相同内容时,我可以看到如下文本:
शहर का मारà¥à¤—दरà¥à¤¶à¤•
Bangalore मारà¥à¤—दरà¥à¤¶à¤•
Bangalore सà¥à¤¥à¤¾à¤¨à¥€à¤¯ मारà¥à¤—दरà¥à¤¶à¤•
बà¥à¤°à¤¾à¤‚ड लोकेटर
लोकपà¥à¤°à¤¿à¤¯ पà¥à¤°à¤¶à¥à¤
我已经重新检查过,我的编码在任何地方都没有latin1,但我仍然无法弄清楚为什么会发生这种情况。我怀疑这可能与使用UNIX插入有关
在我的本地数据库和应用程序中,我使用SQLYog insert的代码也运行良好。但在我的prod DB中,它变得一团糟
请给我一些建议
在命令行中运行此命令:
mysql --default-character-set=utf8
如果要检查字符集,可以检查:
mysql > SELECT DEFAULT_CHARACTER_SET_NAME, DEFAULT_COLLATION_NAME
FROM INFORMATION_SCHEMA.SCHEMATA WHERE SCHEMA_NAME = 'DATABASE_NAME';
मार代码>通过“Mojibake”变成a¨a¨a¨¨a¨
:
- 客户端中的字节以utf8正确编码(良好)
- 您可能默认使用
集合名称拉丁1
(或集合字符集(“拉丁1”)
或…)进行连接。(应该是utf8
)
- 表中的列可能是,也可能不是字符集utf8,但它应该是
启动root
时,不会跳过init connect
设置(init connect='SET NAMES utf8'
)。如果使用root,请确保手动执行此操作。我的默认字符集是:|默认字符集名称|默认排序规则名称| utf8 | utf8 |通用| ci |虽然每次在单个insert语句之前运行此操作时似乎都会起作用:设置名称“utf8”COLLATE“utf8 |通用| ci”,但我必须在每个insert语句之前执行此操作出于某种原因插入语句。
mysql > SELECT DEFAULT_CHARACTER_SET_NAME, DEFAULT_COLLATION_NAME
FROM INFORMATION_SCHEMA.SCHEMATA WHERE SCHEMA_NAME = 'DATABASE_NAME';