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 回答