나는 이것을 1 주일 이상 풀려고 노력해 왔습니다.PHP를 사용하여 JSON 결과로 UTF8 인코딩
나는 데이터베이스 utf8_general_ci이 있습니다.
내가 JSON 편대가 PHP를 사용의 결과를 인쇄
는 문자 인코딩 UTF8 수 없습니다. 데이터베이스에 저장값은 다음
아랍어 언어에 결과가
입니다 인쇄 내가db.php를
<?php
$DBhost = "xx.xx.xx.x";
$DBusername = "username";
$DBpassword = "password";
$db_name = "bdname";
$connect = mysql_connect("$DBhost", "$DBusername", "$DBpassword")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");
?>
및 코드를 사용하고 코드되어 있습니다
show.php
출력 7백45경1천5백15조5백36억9천1백36만3천2백10<?php
include('db.php');
$tbl_name = "table_name";
mysql_set_charset('utf8');
$sth = mysql_query("SELECT * FROM $tbl_name");
$rows = array();
while($r = mysql_fetch_assoc($sth)) {
$rows[] = array_map('utf8_encode', $r);
}
print json_encode($rows);
?>
예 :
[{ "ID": "4", "news_id": "1", "자막": "\ u00c3 \ u0083 \ u00c3 \ u008e \ u00c3 \ u0088 \ u00c3 \ u0087 \ u00c3 \ u0091 \ u00c3 \ u0087 \ u00c3 \ u00a1 \ u00c3 \ u0088 \ u00c3 \ u0098 \ u00c3 \ u00a6 \ u00c3 \ u00a1 \ u00c3 \ u0089 \ u00c3 \ u0087 \ u00c3 \ u00a1 \ u00c3 \ u00a3 \ u00c3 \ u008f \ u00c3 \ u0091 \ u00c3 \ u0093 \ u00c3 \ u00c3 \ u0089 \ u00c3 \ u00a1 \ u00c3 \ u008e \ u00c3 \ u0087 \ u00c3 \ u00a3 \ u00c3 \ u0093 \ u00c3 \ u0089 \ u00c3 \ 내 공학자 이해 무엇 u00a1 \ u00c3 \ u009f \ u00c3 \ u0091 \ u00c3 \ u0089 \ u00c3 \ u0087 \ u00c3 \ u00a1 \ u00c3 \ u009e \ u00c3 \ u008f \ u00c3 \ u00a3 "
/U00은 라틴 및 UTF8 인 H는 의 iconv 및 같이 라틴에 UTF8 변환하는 /U0와하지 두 0
시도 다른 방법을 시작해야 decode_jsonmysql_set_charset을 latin1으로 변경하고 심지어 그것을 제거하고 을 사용하여 html 헤더를 추가했습니다. TF8, latin1 및 windows-1526 charset도 같은 결과를 얻습니다. null캡션 출력에 대한 결과가 나타납니다.
여기 선택의 여지가있어 정말
어떤 생각을 어떻게 해야할지 몰라?
mbstring 함수, http://php.net/manual/en/ref.mbstring.php 또는 좋은 자습서 http://www.ar-php.org/faq-php-arabic을 테스트 했습니까? html –
이러한 이스케이프 시퀀스가 * 잘못된 문자를 나타내는가 아니면 다른 이스케이프 시퀀스를 사용하여 비 ASCII 문자를 나타낼 것입니까? – Quentin
@Quentin 내가 결과를 utf8에 넣고 싶습니다 – aLFaRSi