2013-10-14 89 views
-2

我試圖在我的android應用程序中顯示一個ListView中的utf-8字符的阿姆哈拉字符,但顯示的是一系列問號?????這是json輸出的樣子:在JSON中顯示UNICODE字符

[{"ImageID":"1","ItemID":" Michael","ItemID_AM":" ???","ImagePath":"http:\/\/10.0.2.2 
    \/android\/Pagination\/pics\/pic_a.png"},{"ImageID":"2","ItemID":" Mary","ItemID_AM":" 
    ????","ImagePath":"http:\/\/10.0.2.2\/android\/Pagination\/pics\/pic_b.png"}, 
    {"ImageID":"3","ItemID":"Sarah","ItemID_AM":"????","ImagePath":"http:\/\/10.0.2.2\/android 
    \/Pagination\/pics\/pic_c.png"}, 
    {"ImageID":"4","ItemID":"John","ItemID_AM":"??","ImagePath":"http:\/\/10.0.2.2\/android 
    \/Pagination\/pics\/pic_d.png"}, 
    {"ImageID":"5","ItemID":"Paul","ItemID_AM":"???","ImagePath":"http:\/\/10.0.2.2\/android 
    \/Pagination\/pics\/pic_e.png"}, 
    {"ImageID":"6","ItemID":"Martha","ItemID_AM":"??????","ImagePath":"http:\/\/10.0.2.2 
    \/android\/Pagination\/pics\/pic_f.png"}, 
    {"ImageID":"7","ItemID":"Abby","ItemID_AM":"??","ImagePath":"http:\/\/10.0.2.2\/android 
    \/Pagination\/pics\/pic_a.png"}, 
    {"ImageID":"8","ItemID":"Bekei","ItemID_AM":"??","ImagePath":"http:\/\/10.0.2.2\/android 
    \/Pagination\/pics\/pic_b.png"}, 
    {"ImageID":"9","ItemID":"Nani","ItemID_AM":"??","ImagePath":"http:\/\/10.0.2.2\/android 
    \/Pagination\/pics\/pic_c.png"}, 
    {"ImageID":"10","ItemID":"Baby","ItemID_AM":"??","ImagePath":"http:\/\/10.0.2.2\/android 
    \/Pagination\/pics\/pic_d.png"}, 
    {"ImageID":"11","ItemID":"Made","ItemID_AM":"???","ImagePath":"http:\/\/10.0.2.2\/android 
    \/Pagination\/pics\/pic_e.png"}, 
    {"ImageID":"12","ItemID":"Fuche","ItemID_AM":"??","ImagePath":"http:\/\/10.0.2.2\/android 
    \/Pagination\/pics\/pic_f.png"},{"ImageID":"13","ItemID":"Michael Fulle","ItemID_AM":"??? 
    ??","ImagePath":"http:\/\/10.0.2.2\/android\/Pagination\/pics\/pic_a.png"}, 
    {"ImageID":"14","ItemID":" Mary Assefa","ItemID_AM":"???? ???","ImagePath":"http:\/ 
    \/10.0.2.2\/android\/Pagination\/pics\/pic_b.png"},{"ImageID":"15","ItemID":"Sarah 
Michael","ItemID_AM":"???? ???","ImagePath":"http:\/\/10.0.2.2\/android\/Pagination\/pics\/pic_c.png"},{"ImageID":"16","ItemID":"John Michael","ItemID_AM":"?? 
    ???","ImagePath":"http:\/\/10.0.2.2\/android\/Pagination\/pics\/pic_d.png"}, 
    {"ImageID":"17","ItemID":"Paul Michael","ItemID_AM":"??? ???","ImagePath":"http:\/ 
    \/10.0.2.2\/android\/Pagination\/pics\/pic_e.png"},{"ImageID":"18","ItemID":"Martha 
    Ephrem","ItemID_AM":"?????? ????","ImagePath":"http:\/\/10.0.2.2\/android\/Pagination\/pics 
    \/pic_f.png"},{"ImageID":"19","ItemID":"Item 19","ItemID_AM":"?? 19","ImagePath":"http:\/ 
    \/10.0.2.2\/android\/Pagination\/pics\/pic_h.png"},{"ImageID":"20","ItemID":"Item 
    20","ItemID_AM":"?? 20","ImagePath":""},{"ImageID":"21","ItemID":"Item 21","ItemID_AM":"?? 
    21","ImagePath":"http:\/\/10.0.2.2\/android\/Pagination\/pics\/pic_g.png"}] 

ItemID_AM是我的數據庫中存儲的阿姆哈拉語字符的字段名稱,並在我的分貝它清楚地顯示阿姆哈拉語字符。這是Phonetic UNICODE.

這裏是mydatabase

CREATE TABLE `images2` (
    `ImageID` int(2) NOT NULL auto_increment, 
    `ItemID` varchar(50) NOT NULL, 
    `ItemID_AM` varchar(50) NOT NULL, 
    `ImagePath` varchar(50) NOT NULL, 
    PRIMARY KEY (`ImageID`) 
    ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=31 ; 

    -- 
    -- Dumping data for table `images2` 
    -- 

    INSERT INTO `images` VALUES (1, 'Michael', '???', 'http://10.0.2.2/android/Pagination/pics/pic_a.png'); 
    INSERT INTO `images` VALUES (2, 'Mary', '????', 'http://10.0.2.2/android/Pagination/pics/pic_b.png'); 
    INSERT INTO `images` VALUES (3, 'Sarah', '????', 'http://10.0.2.2/android/Pagination/pics/pic_c.png'); 
    INSERT INTO `images` VALUES (4, 'John', '??', 'http://10.0.2.2/android/Pagination/pics/pic_d.png'); 
    INSERT INTO `images` VALUES (5, 'Paul', '???', 'http://10.0.2.2/android/Pagination/pics/pic_e.png'); 
    INSERT INTO `images` VALUES (6, 'Martha', '??????', 'http://10.0.2.2/android/Pagination/pics/pic_f.png'); 

這裏是我的getAllData.php

<?php 
$host = "localhost"; // host of MySQL server 
$user = "root"; // MySQL user 
$pwd = ""; // MySQL user's password 
$db = "mydatabase"; // database name 

header('content-type: application/json; charset=utf-8'); 

// Create connection 
$con = mysqli_connect($host, $user, $pwd, $db); 

// Check connection 
if(mysqli_connect_errno($con)) { 
    die("Failed to connect to MySQL: " . mysqli_connect_error()); 
} 

// query the application data 
$sql = "SELECT * FROM images2 WHERE 1 "; 
$result = mysqli_query($con, $sql); 


// an array to save the application data 
$rows = array(); 

// iterate to query result and add every rows into array 
while($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) { 
    $rows[] = $row; 
} 

// close the database connection 
mysqli_close($con); 


// echo the application data in json format 
echo json_encode($rows); 
?> 
我已經用

header('content-type: application/json; charset=utf-8');但什麼都沒有改變。請有人請,請嗎?

+0

我的意思是誰可以幫我解決這個問題?大聲笑 – B3738

+0

這與你以前有問題的問題有什麼不同? http://stackoverflow.com/questions/19182680/encoding-json-to-support-utf-8-characters-in-an-android-app#comment28462760_19182680 –

回答

1

您已在Encoding JSON to support UTF-8 characters in an android app中確認在常規瀏覽器中,您也會收到問號。這表明問題是服務器端。

問題可能是從PHP到MySQL的數據庫連接未設置爲UTF-8。在迴應期間,任何非ISO8895-1字符將被轉換爲「?」。

的字符集與連接上設置:

mysqli_set_charset($con, "utf8") 

您發出選擇之前。

+0

男人這一行代碼改變了我的生活!謝謝你,謝謝你,謝謝你!! – B3738