1

ええ、私はいくつかの値を呼び出すphpページをロード/リフレッシュするときにÆØÅがランダムにÆØÅに置き換えられるという問題があります...

追加するまではうまくいきました

$Filename = preg_replace("/[^a-zA-Z0-9]/", "", $Filename);

しかし、それによりスクリプトは . ファイル拡張子に含まれていたので、コードを削除しました。ロード/リフレッシュ時に文字をランダムに置き換えるようになりました

$Filename=$_FILES['Filename']['name'];
$Description=$_POST['Description'];
$Contact=$_POST['Contact'];
$Time = gmdate('Y-m-d H:i');
$Title=$_POST['Title'];
$Filename = preg_replace("/[^a-zA-Z0-9]/", "", $Filename);

if(move_uploaded_file($_FILES['Filename']['tmp_name'], $target)) {
echo "Filen ". basename( $_FILES['Filename']['name']). " er nå lagt til blant Alta Botanikkforeningens funn.";
mysql_connect("localhost", "root", "") or die(mysql_error()) ;
mysql_select_db("altabotanikk") or die(mysql_error()) ;

mysql_query("INSERT INTO picture (Filename,Description,Contact,Time,Title)
VALUES ('$Filename', '$Description', '$Contact', now(), '$Title')") ;
} else {
echo "Det skjedde noe galt her :/";
}

ランダムでどこにもエラーがないため、何が原因なのかわかりません。

UTF-8 を宣言する HTML

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

1 に答える 1

1

MySQL 接続が常に UTF8 であることを確認しましたか?

mysql_connect("localhost", "root", "") or die(mysql_error()) ;
// make sure we're in UTF8 mode!
mysql_query("SET NAMES 'utf8'");
mysql_query("SET CHARACTER SET 'utf8'");
// continue
mysql_select_db("altabotanikk") or die(mysql_error()) ;

じゃあそこから取る?

HTMLmetaに charset utf8 のタグがある場合でも、さらに作業が必要になります。ちなみに、html5 の新しいフォーマット (時代遅れの html4.01 ではなく) は次のとおりです。

<!doctype html>
<html>
  <head>
    <meta charset="utf-8">
    ...
  </head>
  <body>...</body>
</html>

mysql接続にも、すべてが UTF8 であることを伝える必要があります。そして、適切な手段として、スクリプト自体 (.php ファイル) が Unicode ファイルとして保存されていることも確認する必要があります。

于 2013-06-18T22:53:21.157 に答える