UTF-8和德国字符?

时间:2013-05-22 12:04:35

标签: php html mysql utf-8

我的网站上有德语字符问题,

在网站的html / php部分我有这个代码来设置utf-8:

<meta charset="utf-8">

在mysql中,我有这个代码来设置utf-8

SET CHARSET 'utf8';
  1. 以下是关于德语的一些词:Gemäß

  2. 以下是mysql表中该单词的外观:

    Gem&Atilde;&curren;&Atilde;Ÿ

  3. 以下是该字词在网站上的显示方式:Gemäß

  4. 什么问题?感谢。

9 个答案:

答案 0 :(得分:2)

我使用此代码获取标题:

$title = mysql_real_escape_string(htmlentities($_POST['title']));

我只是将其覆盖到

$title = $_POST['title'];

答案 1 :(得分:1)

首先,请确保您的数据库中包含UTF-8字符。

之后,在连接到MySQL后尝试使用SET NAMES 'UTF8'

$con=mysqli_connect("host", "user", "pw", "db");   
if (!$con)
{
    die('Failed to connect to mySQL: ' .mysqli_connect_errno());
}

mysqli_query($con, "SET NAMES 'UTF8'") or die("ERROR: ". mysqli_error($con));

正如manual所说:

  

SET NAMES表示客户端将用于发送SQL的字符集   语句到服务器...它还指定服务器应该的字符集   用于将结果发送回客户端。

答案 2 :(得分:0)

尝试SET NAMES 'utf8'SET NAMES 'utf-8'。其中一些适用于葡萄牙语,也可能适用于德语。我只是不记得哪一个是正确的,但如果不是,则会产生错误。

答案 3 :(得分:0)

你应该确保CONNECTION也是utf-8。

使用mysqli,这可以通过以下方式完成:

$connection = mysqli_connect($host, $user, $pass, $db_name);
$connection->set_charset("utf8");

现在,如果你以某种方式在数据库中找到了错误的字符,那么就有办法使其正确:

  1. 在PHP脚本中,像现在一样检索信息,即不设置连接。这样,错误将被反转并纠正,并且在你的php文件中你将拥有正确的utf-8格式的字符。
  2. 在PHP脚本中,通过设置与utf-8
  3. 的连接来回写信息
  4. 此时您应该在数据库中看到正确的字符
  5. 现在更改您网站的所有读/写功能,从现在开始使用utf-8

答案 4 :(得分:0)

HTML5中的

使用

<meta charset="utf-8">
HTML 4.0.1中的

使用

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

答案 5 :(得分:0)

我遇到了同样的问题。我通过使用解决了这个问题:

如果您已经创建了表,则需要将字符集修改为:

alter table <table name> convert to character set utf8 collate utf8_general_ci.
默认情况下,

您的表格字符集设置为 latin_swedish

另外,在检索数据并将其显示到您的页面时,您可能会遇到一些问题。其中包括:mysql_set_charset('utf8')就在您连接数据库的行下方。 例如:

mysql_connect('localhost','root','');
mysql_select_db('my db');
mysql_set_charset('utf8');

答案 6 :(得分:0)

结果是html实体编码好像它们是由htmlentities()处理的,我想知道你的变量是从表格收到的,还是正在通过说wysiwg编辑器进行处理?

无论如何,这些应该在html模板上打印正常,但html_entity_decode()应该这样做。

希望这有帮助

答案 7 :(得分:0)

您需要为php 5.x

执行此操作
$yourNiceLookingString = 
htmlspecialchars ($YourStringFromDB, ENT_COMPAT | ENT_HTML401, 'ISO-8859-1');

php 4.x

  $yourNiceLookingString = htmlspecialchars($YourStringFromDB);

答案 8 :(得分:0)

将数据库中的数据类型设置为使用UTF-8,这可以解决问题。