我从java获取一个utf8-json-String作为post变量到我的php文件中。
我的php标题设置为charset = utf-8,html charset = utf-8,php文件为utf8,没有BOM。
我尝试将json数据写入TSQL数据库。
如果我这样做
$jsonfile = $_POST['jsonfile'];
$jsonfile = utf8_decode($jsonfile);
$jsonarray = json_decode($jsonfile);
foreach($jsonarray as $value) {
// write in database
}
所有数据都写入我的数据库。不幸的是,charset删除了像ß(ß)这样的德国字符。
如果我只做
$jsonfile = $_POST['jsonfile'];
$jsonarray = json_decode($jsonfile);
foreach($jsonarray as $value) {
// write in database
}
php无法通过数组运行。
答案 0 :(得分:0)
(我假设您也在编写Java客户端。)
将POST请求发送为Content-type: application/json
,将JSON作为请求的有效负载发送,而不是在表单字段中以application/x-www-form-urlencoded
的形式发送大量JSON。
您可以使用file_get_contents("php://input")
在PHP中阅读有效负载的完整内容。