Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
UTF 8中向MYSQL插入数据的问题_Mysql_Unix_Encoding_Utf 8 - Fatal编程技术网

UTF 8中向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服务器中运行:

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';