1

我在 php 文件中显示 unicode 字符时遇到问题。

问题是该行<td>Märkus</td><td>Tooterühm</td>显示“ä”和“ü”字符。有任何想法吗?谢谢!

这是整个代码:

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Sisestamine</title>

</head>

<body>

<?php
header('Content-type: text/html; charset=utf-8');


session_start();

    echo 'Tere tulemast, '.$_SESSION['user']. '<br> <br>';




if(isset($_POST['save'])){


include 'config.php';



extract($_REQUEST);

$user = $_SESSION['user']; 


$query=mysql_query("insert into norse5_proov SET osakond='$osakond', soetusaasta='$soetusaasta', it_number='$it_number', tooteruhm='$tooteruhm', mudeli_nimetus='$mudeli_nimetus', sn='$sn', riigivara_nr='$riigivara_nr', inventaari_nr='$inventaari_nr', maja='$maja', ruum='$ruum', vastutaja='$vastutaja', markus='$markus', kasutajanimi='$user'") or die(mysql_error());


if($query){


echo "Andmed sisestatud";


}

}

?>


<form action='#' method='post' border='0'>

<table>
<br>
<tr>

<td>Osakond</td>

<td><input type='text' name='osakond' /></td>

</tr>

<tr>

<td>Soetusaasta</td>

<td><input type='text' name='soetusaasta' /></td>

</tr>

<tr>

<td>IT Number</td>

<td><input type='text' name='it_number' /></td>

</tr>

<tr>

<td>Tooterühm</td>

<td><input type='text' name='tooteruhm' /></td>

</tr>

<tr>

<td>Mudeli nimetus</td>

<td><input type='text' name='mudeli_nimetus' /></td>

</tr>

<tr>

<td>SN</td>

<td><input type='text' name='sn' /></td>

</tr>

<tr>

<td>Riigivara nr</td>

<td><input type='text' name='riigivara_nr' /></td>

</tr>

<tr>

<td>Inventaari nr</td>

<td><input type='text' name='inventaari_nr' /></td>

</tr>

<tr>

<td>Maja</td>

<td><input type='text' name='maja' /></td>

</tr>

<tr>

<td>Ruum</td>

<td><input type='text' name='ruum' /></td>

</tr>

<tr>

<td>Vastutaja</td>

<td><input type='text' name='vastutaja' /></td>

</tr>

<tr>

<td>Märkus</td>

<td><input type='text' name='markus' /></td>


<tr>

<td></td>

<td>

<input type='submit' value='Salvesta' name="save" />
<br>
<br>

<a href="update.php">Uuenda andmeid</a><br>
<a href="delete.php">Kustuta andmeid</a><br>
<a href="show_data.php">Kuva andmeid</a><br>
<br>
<a href="index.php">Algusesse...</a>


</td>

</tr>

</table>

</form>

</body>

</html>

问题是 Märkus 和 Tooterühm 行不显示“ä”和“ü”字符。有任何想法吗?谢谢!

4

4 回答 4

2

可能是因为您在输出内容后设置了标题。您需要header在脚本有任何输出之前调用,并且您还应该在发送标头之前开始会话。文件的开头应该是这样的......

<?php 
session_start();
header('Content-type: text/html; charset=utf-8');
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

...
于 2013-02-20T11:11:15.747 回答
2

检查文件是否保存为 UTF-8。有时文件是 ANSI 编码的,因此即使您正确设置了标题,也不会显示 UTF 字符。

所以检查两件事:

  1. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  2. 您的 PHP 文件编码。

注意:如果文件没有使用 UTF-8 编码,并且您更改了它,请记住再次检查特殊字符,因为当您使用新格式保存文件时它们可能会更改。

于 2013-02-20T11:14:24.943 回答
0

检查字段在数据库中的编码方式。可能问题就在那里。

于 2013-02-20T11:16:05.220 回答
0

您应该确保 HTTP 服务器标头是正确的。

特别是标题:

Content-Type: text/html; charset=utf-8

应该在场。

如果存在 HTTP 标头,则浏览器会忽略元标记。或者将 HTML 实体用于特殊字符这里是html 特殊字符代码的链接。

于 2013-02-20T11:12:34.470 回答