【问题标题】:PHP - displaying utf-8 [duplicate]PHP - 显示 utf-8 [重复]
【发布时间】:2017-08-03 15:43:56
【问题描述】:

我的数据库中有以下 UTF-8 数据:

ãダンãƒ'ル

日文:

ダンヒル

字段和数据库设置为utf_8_general_ci。 我不知道如何在我的 html 中显示正确的日文字符。以下是我迄今为止没有成功的做法:

<?php
mb_internal_encoding('UTF-8');
mb_http_output('UTF-8');
header('Content-Type: text/html; charset=UTF-8');
?>

另外,在我的 html 标头中,我将字符集设置为 utf-8:

<meta charset="UTF-8">

数据库连接为mysqli,set_charset设置为utf-8。

请注意,使用这个tool,我设法将我的字符串编码为正确的日语字符。

任何帮助,将不胜感激,谢谢!

【问题讨论】:

  • 我猜你的数据库连接没有设置为 UTF8。您在数据库中有ãダンヒルダンヒル
  • 我有ãダンヒル
  • 好的,所以当您插入时,它没有设置为 UTF8,您还需要重新插入数据。您能否将您正在使用的数据库连接添加到问题中?
  • 好的,我试试这个。我今天继承了一个 17 年前的数据库。谢谢!

标签: php html utf-8 character-encoding


【解决方案1】:

尝试添加表头:

header('Content-Type: text/html; charset=utf-8');

在代码的开头。

或,

MySql:

尝试在mysql_connect函数之后设置字符编码,如下所示:

mysql_query ("set character_set_client='utf8'"); 
mysql_query ("set character_set_results='utf8'"); 

mysql_query ("set collation_connection='utf8_general_ci'"); 

Mysqli:

 $mysqli = new mysqli("localhost", "my_user", "my_password", "test");

 /* check connection */
  if (mysqli_connect_errno()) {
      printf("Connect failed: %s\n", mysqli_connect_error());
      exit();
  }

  /* change character set to utf8 */
  if (!$mysqli->set_charset("utf8")) {
      printf("Error loading character set utf8: %s\n", $mysqli->error);
  } else {
      printf("Current character set: %s\n", $mysqli->character_set_name());
  }

  $mysqli->close();

【讨论】:

  • OP 有这个
  • 我已经更新了一些代码..试试这个..
  • 谢谢,但是是的,我的数据库连接中已经有$mysqli-&gt;set_charset("utf8")
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-05-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-03-07
相关资源
最近更新 更多