2

我从 java 中得到一个 utf8-json-String 作为一个 post 变量到我的 php 文件中。

我的 php 标头设置为 charset=utf-8,html charset=utf-8 和 php 文件是没有 BOM 的 utf8。

我尝试将 json 数据写入 TSQL 数据库。

如果我做

$jsonfile = $_POST['jsonfile'];
$jsonfile = utf8_decode($jsonfile); 
$jsonarray = json_decode($jsonfile);
foreach($jsonarray as $value)   {
// write in database
}

所有数据都写入我的数据库。不幸的是,字符集删除了像 ß (ß) 这样的德语字符。

如果我只做

$jsonfile = $_POST['jsonfile'];
$jsonarray = json_decode($jsonfile);
foreach($jsonarray as $value)   {
// write in database
}

php 无法通过数组运行。

4

1 回答 1

0

(我假设您也在编写 Java 客户端。)

将 POST 请求作为请求的有效负载发送Content-type: application/json,并将 JSON 作为请求的有效负载发送,而不是像application/x-www-form-urlencoded在表单字段中使用大量 JSON 一样发送它。

您可以使用file_get_contents("php://input").

于 2013-10-09T11:32:26.040 回答