0

私はばかげたinvalid byte sequence for encoding "UTF8": 0x96エラーまたはそれが何であれ、取得し続けます。今、私はそれが私のサーバースペースの問題であることを確認しました.

問題は、これも UTF-8 である非常によく似たデータベースから移行したことです。最初のデータベースで PHP スクリプトをテストしましたが、動作しますが、必要なデータベースでは動作しません。エンコーディングに問題があるに違いありませんが、何が原因かわかりません。

PHP クエリが新しいデータベースで失敗し、そのエラーが発生します。

PHP:

$name = $_POST["name"];
$type = $_POST["type"];
$contact = $_POST["contact"];
$address = $_POST["address"];
$postcode = $_POST["postcode"];
$phone = $_POST["phone"];
$description = $_POST["description"];
$location = $_POST["location"];

$conn = pg_connect(/*DATABASE CONNECTION DETAILS*/);

$res = pg_query("INSERT INTO address (organisation_type, contact_name, address, postcode, phone_number, description, location_to_town, organisation_name) VALUES ('$type', '$contact', '$address', '$postcode', '$phone', '$description', '$location', '$name')");

 pg_close($conn);

つまり、単純な PHP のデータベースへの書き込み関数であり、唯一の奇妙な点は、一方の UTF-8 データベースが機能し、もう一方が機能していないことです。コマンドラインでサーバーを比較したり、PostGreSQL サーバーの構成を変更したりする方法はありますか?

情報をいただければ幸いです。この上に私の髪を引き裂く!

4

1 に答える 1

2

エラーメッセージの名前は0x96です。これは、UTF-8のようには見えませんが、8ビット文字セットのダッシュです。HTMLに正しいメタヘッダーを設定して、UTF-8を投稿していることを確認してください。

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

または、PHP側でコンテンツタイプHTTPヘッダーを使用して文字セットを送信します。

header('Content-Type: text/html; charset=utf-8');
于 2012-11-13T18:24:12.423 に答える