在UTF 8中将数据插入MYSQL的问题

时间:2015-12-14 08:08:18

标签: mysql unix encoding utf-8

我有一组查询,我尝试使用此命令在mysql服务器中运行:

mysql -ufourint -pjabberwocky -hdb1 cafe  < /tmp/bhasha_templates.txt

文件bhasha_templates.txt是由我在记事本中使用UTF 8编码创建的。

我也尝试过用UTF8 BOM和ANSI编码,但它似乎不适用于印地语。

样品:

INSERT INTO cafe.bhasha_templates( `module`,  `language`,  `key`,  `value`) VALUES ('CAFE','hindi','srp.message.noResultFound','माफ़ कीजिए। हमें कोई जानकारी नहीं मिली। क्या आप चाहेंगे');
INSERT INTO cafe.bhasha_templates( `module`,  `language`,  `key`,  `value`) VALUES ('CAFE','hindi','srp.message.noResultFoundAddListing','एक सूची जोड़ें?');
INSERT INTO cafe.bhasha_templates( `module`,  `language`,  `key`,  `value`) VALUES ('CAFE','hindi','srp.message.similarSearch','के लिए खोजें');
INSERT INTO cafe.bhasha_templates( `module`,  `language`,  `key`,  `value`) VALUES ('CAFE','hindi','srp.text.AlsoFound','यह भी पाया गया:');
INSERT INTO cafe.bhasha_templates( `module`,  `language`,  `key`,  `value`) VALUES ('CAFE','hindi','srp.text.seeAll','सभी देखिएँ');
INSERT INTO cafe.bhasha_templates( `module`,  `language`,  `key`,  `value`) VALUES ('CAFE','hindi','srp.text.seeAlso','यहाँ भी देखें');
INSERT INTO cafe.bhasha_templates( `module`,  `language`,  `key`,  `value`) VALUES ('CAFE','hindi','srp.text.suggestItems','आप अन्य देखना चाहेंगे');
INSERT INTO cafe.bhasha_templates( `module`,  `language`,  `key`,  `value`) VALUES ('CAFE','hindi','srp.text.ViewContactDetails','सम्पर्क करने के लिए विवरण देखें');
INSERT INTO cafe.bhasha_templates( `module`,  `language`,  `key`,  `value`) VALUES ('CAFE','hindi','srp.title.Articles','ये लेख आपके लिये दिलचस्प हो सकता है');
INSERT INTO cafe.bhasha_templates( `module`,  `language`,  `key`,  `value`) VALUES ('CAFE','hindi','srp.title.cardPhoneNumber','${locality},${cityName} में ${name},${category} के संपर्क के लिए फोन नंबर');
INSERT INTO cafe.bhasha_templates( `module`,  `language`,  `key`,  `value`) VALUES ('CAFE','hindi','srp.title.compareResults','प्रमुख परिणामों की तुलना');
INSERT INTO cafe.bhasha_templates( `module`,  `language`,  `key`,  `value`) VALUES ('CAFE','hindi','srp.title.Events','कार्यक्रम');
INSERT INTO cafe.bhasha_templates( `module`,  `language`,  `key`,  `value`) VALUES ('CAFE','hindi','srp.title.inAndNear','${where},${cityName} में और निकटत्तम् ${what}');
INSERT INTO cafe.bhasha_templates( `module`,  `language`,  `key`,  `value`) VALUES ('CAFE','hindi','srp.title.Movies','फिल्म');
INSERT INTO cafe.bhasha_templates( `module`,  `language`,  `key`,  `value`) VALUES ('CAFE','hindi','srp.title.topSearch','प्रमुख खोजें');
INSERT INTO cafe.bhasha_templates( `module`,  `language`,  `key`,  `value`) VALUES ('CAFE','hindi','srp.tooltip.HeadOffice','मुख्य कार्यालय');
INSERT INTO cafe.bhasha_templates( `module`,  `language`,  `key`,  `value`) VALUES ('CAFE','hindi','srp.tootltip.Services','सेवाएँ');
INSERT INTO cafe.bhasha_templates( `module`,  `language`,  `key`,  `value`) VALUES ('CAFE','english','footer.title.advertise','Advertise with asklaila');
INSERT INTO cafe.bhasha_templates( `module`,  `language`,  `key`,  `value`) VALUES ('CAFE','english','footer.title.Android','AskLaila StreetSmart Local Search Mobile App on Andoid');
INSERT INTO cafe.bhasha_templates( `module`,  `language`,  `key`,  `value`) VALUES ('CAFE','english','footer.title.blog','Asklaila Blogs');
INSERT INTO cafe.bhasha_templates( `module`,  `language`,  `key`,  `value`) VALUES ('CAFE','english','footer.title.brandLocator','Brand Locator');
INSERT INTO cafe.bhasha_templates( `module`,  `language`,  `key`,  `value`) VALUES ('CAFE','english','footer.title.CityGuide','CITY GUIDE');
INSERT INTO cafe.bhasha_templates( `module`,  `language`,  `key`,  `value`) VALUES ('CAFE','english','footer.title.cityScape','CityScape');
INSERT INTO cafe.bhasha_templates( `module`,  `language`,  `key`,  `value`) VALUES ('CAFE','english','footer.title.contactUs','Contact Us');
INSERT INTO cafe.bhasha_templates( `module`,  `language`,  `key`,  `value`) VALUES ('CAFE','english','footer.title.corporate','CORPORATE');
INSERT INTO cafe.bhasha_templates( `module`,  `language`,  `key`,  `value`) VALUES ('CAFE','english','footer.title.FAQ','Frequently Asked Questions');
INSERT INTO cafe.bhasha_templates( `module`,  `language`,  `key`,  `value`) VALUES ('CAFE','english','footer.title.iOS','AskLaila StreetSmart Local Search Mobile App on iOS');
INSERT INTO cafe.bhasha_templates( `module`,  `language`,  `key`,  `value`) VALUES ('CAFE','english','footer.title.localityGuide','${cityName} Locality Guide');
INSERT INTO cafe.bhasha_templates( `module`,  `language`,  `key`,  `value`) VALUES ('CAFE','english','footer.title.Mobile','MOBILE');

我确保我的数据库表也在COLLATION_NAME中:utf8_general_ci,列也是如此。

但是当我在我的应用程序中查看相同内容时,我可以看到文本:

शहर का मारà¥à¤—दरà¥à¤¶à¤•


Bangalore मारà¥à¤—दरà¥à¤¶à¤•

Bangalore सà¥à¤¥à¤¾à¤¨à¥€à¤¯ मारà¥à¤—दरà¥à¤¶à¤•

बà¥à¤°à¤¾à¤‚ड लोकेटर

लोकपà¥à¤°à¤¿à¤¯ पà¥à¤°à¤¶à¥à¤

我已经重新检查过我的编码没有latin1,但我仍然无法弄清楚它为什么会发生。我怀疑它可能与使用UNIX插入有关。

我的本​​地数据库和应用程序中的相同代码,我使用SQLYog插入工作正常。但是在我的prod DB中它会变得混乱。

请指教。

¨

3 个答案:

答案 0 :(得分:1)

要将默认值设置为UTF-8,您需要将以下内容添加到my.cnf

[client]
default-character-set=utf8

[mysql]
default-character-set=utf8


[mysqld]
collation-server = utf8_unicode_ci
init-connect='SET NAMES utf8'
character-set-server = utf8

答案 1 :(得分:0)

在命令行中运行:

mysql --default-character-set=utf8

如果要查看字符集,可以查看:

mysql > SELECT DEFAULT_CHARACTER_SET_NAME, DEFAULT_COLLATION_NAME
FROM INFORMATION_SCHEMA.SCHEMATA WHERE SCHEMA_NAME = 'DATABASE_NAME';

答案 2 :(得分:0)

मार通过“Mojibake”变为माà¤

  • 客户端中的字节在utf8(正常)中正确编码。
  • 您可能默认与SET NAMES latin1(或set_charset('latin1')或...)相关联。 (应该是utf8。)
  • 表格中的列可能是CHARACTER SET utf8,也可能不是init-connect,但应该是这样。

init-connect='SET NAMES utf8'启动时,不会跳过root设置(bool operator < (const foo& lhs, const bar& rhs); bool operator < (const bar& lhs, const foo& rhs); )。如果您使用root,请务必手动执行。