【问题标题】:php mysql and unicodephp mysql 和 unicode
【发布时间】:2016-08-03 05:28:46
【问题描述】:

我正在尝试在 xampp 中的 phpmyadmin 上插入 unicode 内容。我将数据库和表的排序规则都设置为 utf8。但每当我尝试插入 unicode 数据(即尼泊尔语或印地语字体)时,数据的存储方式如下:

数据显示正确。因为我已将元标记上的字符集设置为 utf-8。主要问题是我想按原样存储数据。

有没有办法按原样存储数据? 数据实际上是:“समाचार”。

【问题讨论】:

  • 显示代码.......
  • INSERT INTO [table_name] SET added_date = now(), added_by = 1, category_name = 'खेलकुद', category_status = '1', show_in_menu = '1' 这是我的插入代码。我正在使用 mysqli。
  • 尝试进入 phpMyAdmin 并单击表的结构选项卡,然后找到要存储 utf-8 字符的字段的“排序规则”下拉框,然后将其更改为 utf8_unicode_ci。然后尝试插入数据。
  • @Ultimater 我也已经这样做了。对 utf8_unicode_ci 的排序规则也是如此。但是没有用。
  • 对我有用,这是一个 SQL 转储:pastie.org/10927743

标签: php mysql unicode utf-8


【解决方案1】:

您需要在适配器上设置字符集,以便在尝试插入字符之前不会损坏字符。由于您使用 MySQLi 作为数据库适配器,因此您需要寻找以下解决方案之一:

// Procedural style
mysqli_set_charset($link, "utf8");

// Object oriented style
$mysqli->set_charset("utf8");

在此处查看 set_charset 的手册条目: http://php.net/manual/en/mysqli.set-charset.php


您还可以运行初始查询SET NAMES utf8。

【讨论】:

  • 是的,它是正确的方法。或者你可以这样做: $connectionVar->query("SET NAMES urf8");
猜你喜欢
  • 2010-09-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-08-29
  • 1970-01-01
  • 2011-04-02
  • 2010-11-14
  • 2010-09-25
相关资源
最近更新 更多