2013-10-09 6 views
2

자바에서 utf8-json-String을 post 변수로 가져 와서 php 파일에 넣습니다.json_decode가 utf8_encode없이 작동하지 않습니다.

my php header ist는 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 
} 

할 경우. Unfortunatelly charset는 ß (ß)와 같은 독일어 문자를 삭제합니다. 난 단지

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

을 할 경우

는 PHP는 배열을 통해 실행되지 않습니다.

+0

DB 필드에도 올바른 문자 집합을 설정 했습니까? –

+0

json 문자열을 PHP 파일에 복사하여 $ jsonfile에 참조하면 utf8_decode가없는 json_decode가 잘 작동합니다. 모든 것이 데이터베이스에 기록됩니다. 그래서 나는 DB charset 때문에 쿼리를 수행한다. – alex

답변

0

양식 필드에서 JSON의 덩어리로 application/x-www-form-urlencoded로 보내지 않고

Content-type: application/json로 POST 요청을 보내기 (임. 당신은 또한 자바 클라이언트를 작성하는 가정)와 요청의 페이로드로 JSON .

file_get_contents("php://input")으로 PHP의 페이로드 전체 내용을 읽을 수 있습니다.

+0

아니요, JSON은 다른 소스에서 온 것입니다. JSON String을 어떻게 볼 수 있습니다. 코드에 복사하여 붙여 넣으면 작동 할 수있는 특수 문자가있을 수 있습니다. – alex

관련 문제