2017-01-03 5 views
0

json 파일의 일부 데이터를 mysql 데이터베이스에 삽입하려고합니다. 일부 데이터는 unicode을 사용하여 형식이 지정됩니다.PHP - 유니 코드 데이터를 MYSQL에 올바르게 포맷했습니다.

브라우저에서 데이터가 제대로 표시되지만 echo 데이터베이스가 제대로 포맷되지 않은 상태로 삽입됩니다.

데이터베이스에서 데이터 정렬 utf8_unicode_ci으로 사용하고 있습니다.

JSON 데이터 : anch\u2019io,

sar\u00e0가 브라우저에 표시 : MySQL 데이터베이스에 표시 anch'io, sarà

는 : anch’io, sarÃ

나는 데이터베이스에 삽입 할 수 방법 텍스트가 올바르게 포맷 되었습니까?

PHP는

$getUrl = "https://example.com/79809000.json"; 
$json_level = file_get_contents($getUrl); 
$data_level = json_decode($json_level); 

$text = $data_level->{"text"}; 

mysqli_query($conn, "INSERT INTO `70_level`(`text`) VALUES ('$text')"); 

나는 addslashes, htmlentities를 사용하여 시도했지만 작동하지 않습니다.

+0

"mysql 데이터베이스에 표시 중"- 데이터를 정확히 보는 방법? – Dekel

+0

PHP 코드와 데이터를 보는 데 사용하는 응용 프로그램에서 모두 올바른 연결을 사용해야합니다. – Dekel

+0

phpMyAdmin을 사용하고 있습니다. – SNos

답변

1

문자 집합 연결/데이터 정렬 연결에 utf8을 사용하지 않았을 수 있습니다.

이 문제를 해결하는 가장 쉬운 방법은 처음 실행할 쿼리를해야

$conn = mysqli_connect(...); 
mysqli_query($conn, "SET NAMES 'utf8'"); 

SET NAMES 쿼리를 사용하는, 그래서 당신이 바로 mysqli_connect 함수 뒤에 넣어 있는지 확인합니다.

이 변경은 모든 데이터에 영향을 미치므로 데이터베이스에 이미 데이터가있는 경우 새로운 (utf8) charset을 사용하여 다시 삽입해야합니다.

관련 문제