phpmyadmin+php 俄语

发布于 2024-12-08 04:39:46 字数 302 浏览 0 评论 0原文

在 phpmyadmin 中,我使用 utf8_unicode_ci 编码存储了一些俄语值。它们在 phpmyadmin 中完美显示。

当我用 php 获取这些值并尝试将它们放入选择的选项中时,就会出现问题,它们显示为“??????”。

我尝试将标头中的编码更改为 iso-8859-1 而不是 utf-8,但它也不起作用。

我也尝试过

mb_convert_encoding($str, 'UTF-8', 'auto');

但没有改变:(

还有其他想法吗?

In phpmyadmin I have stored a few russian values, using utf8_unicode_ci encoding. They are shown perfectly in phpmyadmin.

The problem appears when I get those values with php and I try to put them into options of a select, they are shown as "??????".

I've tried changing the encoding in the headers to iso-8859-1 instead of utf-8 but it doesn't work neither.

I've also tried with

mb_convert_encoding($str, 'UTF-8', 'auto');

but no change :(

Any other idea??

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

何以畏孤独 2024-12-15 04:39:46

如果您使用的是 MySQL 数据库/连接,请在运行查询之前使用 mysql_query("SET NAMES 'utf8'");,不过更好的选择是 mysql_set_charset()

还要确保您有条目:

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

在页面的标题部分。

如果您使用 PDO,请将连接更改为:

$PDO_connection = new PDO("mysql:host=".$db['host'].";dbname=".$db['name'],
$db['user'], $db['pword'],
array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8")

If you're using a MySQL DB/connection, use mysql_query("SET NAMES 'utf8'"); before your run your query, though a better alternative is mysql_set_charset().

Also ensure you have the entry:

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

In the header section of your page.

If you're using PDO, change your connection to:

$PDO_connection = new PDO("mysql:host=".$db['host'].";dbname=".$db['name'],
$db['user'], $db['pword'],
array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8")
南七夏 2024-12-15 04:39:46

我尝试将标头中的编码更改为 iso-8859-1 而不是 utf-8

有何用处?将支持俄语字符的正确编码更改为不支持俄语字符的错误编码有什么意义?

为了在页面上实现正确的编码,您必须做两件事:

  1. 告诉数据库您期望数据采用什么编码。应该使用 mysql_set_charset('utf8') 来完成(或者如果您使用其他库的类似功能)其中 utf8 是 mysql 行话中的编码名称。
  2. 告诉浏览器您的页面采用什么编码。应该使用 Content-type HTTP 标头,使用 header ('Content-type: text/html; charset=utf-8') ; 没有别的。

I've tried changing the encoding in the headers to iso-8859-1 instead of utf-8

What for? what's the point in changing right encoding that support russian characters to wrong one that doesn't?

In order to achieve proper encoding on your page, you u have to do 2 things:

  1. To tell the database what encoding you're expecting your data in. It should be done with mysql_set_charset('utf8') (or similar function of other library if you'r using one) where utf8 is the name of the encoding in mysql lingo.
  2. to tell a browser what encoding your page in. it should be done with Content-type HTTP header, using header ('Content-type: text/html; charset=utf-8'); and nothing else.
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文