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

ファイルが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 に答える
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 に答える
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 に答える