SQL android 中的查询无法识别希伯来字母,尽管在 wamp 服务器中可以识别
SQL query in android doesn't recognize hebrew letters despite in wamp server it does
当我试图通过希伯来语字段查找记录时,它在执行我的查询时 return 没有任何数据。尽管事实上当我在我的 wampserver 中粘贴相同的查询时,查询 return 正确的答案!
我将 table 和字段定义为 utf8_general_ci
,但问题仍然存在。请帮忙
public ArrayList<String> findPartnersFast(String semester , String course , String city) {
String currentQuery = "SELECT * FROM fast_reg " + "WHERE course = " + "'" + "מבוא למקרוכלכלה" + "'" ;
ArrayList<String> arrayOfResults = new ArrayList<String>();
try {
statement = connection.createStatement();
res = statement.executeQuery(currentQuery);
Log.d("DBmanipulation" , currentQuery);
while(res.next()) {
Log.d("DBmanipulation" , "in while loop!");
String temp = res.getString("student_name");
arrayOfResults.add(temp);
Log.d("DBmanipulation", "name: " + temp);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (res != null) {
res.close();
}
} catch (Exception e) {
}
}
return arrayOfResults;
}
日志:
03-20 20:29:09.400 3593-4082/com.example.uvalerx073037.finalproject_correct D/Register: In BackGround
03-20 20:29:09.400 3593-4082/com.example.uvalerx073037.finalproject_correct I/System.out: conneting to Database...
03-20 20:29:09.532 3593-4082/com.example.uvalerx073037.finalproject_correct I/System.out: Connection Successful
03-20 20:29:09.550 3593-4082/com.example.uvalerx073037.finalproject_correct D/DBmanipulation: SELECT * FROM fast_reg WHERE course = 'מבוא למקרוכלכלה'
03-20 20:29:09.557 3593-4082/com.example.uvalerx073037.finalproject_correct I/System.out: connection close properly
您需要确保 sql table 行和字段编码正确:
- 数据库排序规则必须是 utf8_general_ci。
- table 与希伯来语的排序规则必须是 utf8_general_ci
- 在与数据库的连接中,您需要使用清除字符集的设置,我知道在 php 中,连接设置需要像这样:
('Content-Type: text/html; charset=utf-8');
- 在你的xhtml标签中,在android中,你需要定义这个页面使用utf8:
- 在连接脚本中选择数据库后,您需要输入 mysql_query("SET NAMES 'utf8'");
也看看这个答案:
MySQL db question marks instead of hebrew characters..?
当我试图通过希伯来语字段查找记录时,它在执行我的查询时 return 没有任何数据。尽管事实上当我在我的 wampserver 中粘贴相同的查询时,查询 return 正确的答案!
我将 table 和字段定义为 utf8_general_ci
,但问题仍然存在。请帮忙
public ArrayList<String> findPartnersFast(String semester , String course , String city) {
String currentQuery = "SELECT * FROM fast_reg " + "WHERE course = " + "'" + "מבוא למקרוכלכלה" + "'" ;
ArrayList<String> arrayOfResults = new ArrayList<String>();
try {
statement = connection.createStatement();
res = statement.executeQuery(currentQuery);
Log.d("DBmanipulation" , currentQuery);
while(res.next()) {
Log.d("DBmanipulation" , "in while loop!");
String temp = res.getString("student_name");
arrayOfResults.add(temp);
Log.d("DBmanipulation", "name: " + temp);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (res != null) {
res.close();
}
} catch (Exception e) {
}
}
return arrayOfResults;
}
日志:
03-20 20:29:09.400 3593-4082/com.example.uvalerx073037.finalproject_correct D/Register: In BackGround
03-20 20:29:09.400 3593-4082/com.example.uvalerx073037.finalproject_correct I/System.out: conneting to Database...
03-20 20:29:09.532 3593-4082/com.example.uvalerx073037.finalproject_correct I/System.out: Connection Successful
03-20 20:29:09.550 3593-4082/com.example.uvalerx073037.finalproject_correct D/DBmanipulation: SELECT * FROM fast_reg WHERE course = 'מבוא למקרוכלכלה'
03-20 20:29:09.557 3593-4082/com.example.uvalerx073037.finalproject_correct I/System.out: connection close properly
您需要确保 sql table 行和字段编码正确:
- 数据库排序规则必须是 utf8_general_ci。
- table 与希伯来语的排序规则必须是 utf8_general_ci
- 在与数据库的连接中,您需要使用清除字符集的设置,我知道在 php 中,连接设置需要像这样: ('Content-Type: text/html; charset=utf-8');
- 在你的xhtml标签中,在android中,你需要定义这个页面使用utf8:
- 在连接脚本中选择数据库后,您需要输入 mysql_query("SET NAMES 'utf8'");
也看看这个答案: MySQL db question marks instead of hebrew characters..?