2012-05-31 32 views
0

現在我得到了一個數據庫。數據庫使用全能的utf-8歸類編碼。實際上整理是utf8,我不確定編碼是什麼。這應該是另一個問題。如何使用日文字符管理數據庫中的ID

然後我做了一個程序從數據庫中檢索數據。

<?php 
    require_once('convertArraytoJson.php'); 
    require_once('config.php'); 
    mysql_connect ("localhost", $databaseuser, $databasepassword); 
    mysql_query("SET character_set_results = 'utf8', character_set_client = 'utf8', character_set_connection = 'utf8', character_set_database = 'utf8', character_set_server = 'utf8'"); 
    @mysql_select_db ($databasename) or die ("Unable to select database"); 
    $data=$_GET['id']; 
    $query="SELECT * FROM `tabletes` where id = '".$data."'"; 
    $data = mysql_query($query); 
    while (true){ 
     $info = mysql_fetch_array ($data, MYSQL_ASSOC); 
     if ($info == false) { 
      break; 
     } 
     //$output[]=$info; 
     $output[$info['ID']]=$info; 
     unset ($output[$info['ID']]['ID']); 
    } 
    $result = array2json($output); 

    echo $result; 
?> 

數據庫的內容是這樣的:

enter image description here

現在我做這個調用函數(你需要放大屏幕上看到它):

http://localhost/domainname/api/test2.php?id=jr-東北本線-荒川橋梁__35.79_139.72 

它不起作用。

但是,如果我不使用$ _GET,只需直接在代碼中輸入日文字符即可。

所以,如果我改變:

$data = $_GET['id'] 

$data = 'jr-東北本線-荒川橋梁__35.79_139.72' 

事情做工精細。

當然,我不想硬連接ID,我想通過$ _GET ['id']訪問它。我該怎麼辦?

回答

2

只需使用urlencode() - 你的字符串變得像:

%E6%9D%B1%E5%8C%97%E6%9C%AC%E7%B7%9A-%E8%8D%92%E5%B7%9D%E6%A9%8B%E6%A2%81

這些漢字是不允許的。

檢查RFC1738:Uniform Resource Locators (URL)

+0

答案是基本相同的。這個有樣品。 –

2

不能使用日文字符直接進入使用UTF-8的URL。您需要使用網址編碼來傳遞參數。

請看下面的鏈接。

Japanese characters in URL/FTP server

+0

這不是日文字符,而是中文。漢字是日本使用的漢字。很高興知道。 –

+0

嗨thanx @RomanNewaza,用於更新知識。 –

+0

Dou Itashi Mashite! –