我編寫了一個連接mysql數據庫的php項目。另外我有一個jar文件,它在調用php url時運行。通過PHP我從用戶採取參數,並將其保存到數據庫,之後,我的jar文件連接到數據庫並讀取指定的行。直到這裏一切都好。php從mysql到utf-8的編碼
這是一個運行位於服務器.jar文件我的PHP文件:
<?php
mysql_query("SET NAMES utf8");
header("Content-Type: text/html;charset=UTF-8");
echo shell_exec('java -jar /home/path/path/path/my.jar');
?>
和我的jar文件如下:
Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/somedb?useUnicode=true&characterEncoding=UTF-8", "root", "pass");
while循環
:
while (resultSet2.next()) {
title2 = new String(resultSet2.getString("title").getBytes("UTF-8"), "UTF-8");
url2 = new String(resultSet2.getString("url").getBytes("UTF-8"), "UTF-8");
id = new String(resultSet2.getString("id").getBytes("UTF-8"), "UTF-8");
date = new String(resultSet2.getString("date").getBytes("UTF-8"), "UTF-8");
list.add(title2);
list2.add(url2);
list4.add(id);
list5.add(date);
}
當我從數據庫中取出某些東西時,everthing完美地工作。我也設置數據庫爲「默認字符集utf8默認collate utf8_general_ci」。
當我用php寫一個土耳其字符時,它保存到分貝,我可以看到。但是,當我嘗試用我的jar來檢索這些土耳其字符時,它只顯示問號。我嘗試了幾乎所有的東西但沒有機會
任何幫助大大appriciated。
編輯:我也在jar文件中將UTF-8更改爲ISO-8859-1。但它不再工作。
[不要使用'SET NAMES'。](http://stackoverflow.com/a/5289141/53114) – Gumbo