【问题标题】:Issue Inserting hebrew in mysql table from a batch file问题从批处理文件在 mysql 表中插入希伯来语
【发布时间】:2016-01-07 04:49:00
【问题描述】:

当我运行 sql 脚本时,mysql 表中的希伯来语数据看起来像 "ÎíΣÎòÎæÎºÎÖÎö ,ÎÆÎƒ ÎöÎóÎô΃ ήΣ ÎÉÎÖοÎòÎñÎö". 这样的垃圾

表排序规则是**utf8_general_ci**在表和数据库中。

这是我的 sql 脚本

CREATE TABLE IF NOT EXISTS `tbl_lang` (
  `name` varchar(250) NOT NULL,
  `hebrew` text
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

INSERT INTO `tbl_lang` (`name`, `hebrew`) VALUES
('Title', 'סלובקיה ,גן העדן של אירופה'),
('Form', 'טופס הצעת מחיר');

任何帮助将不胜感激。谢谢。

【问题讨论】:

  • 此问题与 Windows/DOS Batch .BAT batch-file 标签无关。请从您的问题中删除此类标签...

标签: mysql sql collation hebrew


【解决方案1】:

尝试将字符编码设置为utf8以及排序规则。

您可以通过shell 这样做:

ALTER TABLE Table CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci;

【讨论】:

    【解决方案2】:

    Mojibake -- 可能

    • 客户端中的字节已正确编码为 utf8(良好)。
    • 您可能默认连接到SET NAMES latin1(或set_charset('latin1') 或...)。 (应该是utf8。)
    • 表格中的列可能是CHARACTER SET utf8,也可能不是,但应该是这样。

    为了得到ÎíΣÎòÎæÎºÎÖÎö ,ÎÆÎƒ ÎöÎóÎô΃ ήΣ ÎÉÎÖοÎòÎñÎö,不知何故涉及到cp850。

    【讨论】:

      【解决方案3】:

      在您的批处理 (.sh) 作业中添加以下内容:

      --default-character-set=hebrew
      

      我运行以下 .sh 作业:

      mysql -uMY_USER --password=MY_PASSWORD --database=MY_DB --default-character-set=hebrew < '/home/test1/public_html/my_files/my_updates.sql'
      

      在 my_updates.sql 文件中,我有带有希伯来字符的更新命令:

      UPDATE `GADI` SET `g_name`='אבגדהוזחטי' WHERE `g_id`=2;
      

      只要我有 --default-character-set=hebrew - 表中的希伯来语就可以了。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-12-16
        • 2013-12-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-11-25
        相关资源
        最近更新 更多