Android ormlite中带有unicode字符的查询未给出所需结果

Android ormlite中带有unicode字符的查询未给出所需结果,android,sqlite,cjk,ormlite,Android,Sqlite,Cjk,Ormlite,我正在android中使用ormlite应用程序。我想用中文字符串运行一个查询,如 QueryBuilder<Hotel, Integer> qb = daoHotelObject.queryBuilder(); Where<Hotel,Integer> where=qb.where(); where.eq("hotel_name", pHotelName); where.and(); where.between("hotel_avg_price", minRange,m

我正在android中使用ormlite应用程序。我想用中文字符串运行一个查询,如

QueryBuilder<Hotel, Integer> qb = daoHotelObject.queryBuilder();
Where<Hotel,Integer> where=qb.where();
where.eq("hotel_name", pHotelName);
where.and();
where.between("hotel_avg_price", minRange,maxRange);
PreparedQuery<Hotel> pq = qb.prepare();
List<Hotel> serachListHotels = daoHotelObject.query(pq);
QueryBuilder qb=dahotelobject.QueryBuilder();
其中Where=qb.Where();
式中.eq(“酒店名称”,pHotelName);
where.and();
其中,介于(“酒店平均价格”、minRange、maxRange)之间;
PreparedQuery pq=qb.prepare();
List serachListHotels=daoHotelObject.query(pq);
其中,
pHotelName
是一个中文字符串,但
serachListHotels
是空的。

这对我来说很好。它的功能如下所示:

TableUtils.createTable(connectionSource, Foo.class);
Dao<Foo, Object> dao = DaoManager.createDao(connectionSource, Foo.class);
Foo foo = new Foo();
String unicodeString = "上海";
foo.stuff = unicodeString;
assertEquals(1, dao.create(foo));

QueryBuilder<Foo, Object> qb = dao.queryBuilder();
qb.where().eq(Foo.STUFF_FIELD_NAME, unicodeString);
List<Foo> results = qb.query();
assertEquals(1, results.size());
assertEquals(unicodeString, results.get(0).stuff);
TableUtils.createTable(connectionSource,Foo.class);
Dao=DaoManager.createDao(connectionSource,Foo.class);
Foo-Foo=新的Foo();
字符串解析=”上海";
foo.stuff=破坏;
assertEquals(1,dao.create(foo));
QueryBuilder qb=dao.QueryBuilder();
qb.where().eq(Foo.STUFF\u FIELD\u NAME,unicodeString);
List results=qb.query();
assertEquals(1,results.size());
assertEquals(销毁,结果.get(0.stuff));

这似乎很好。您有什么不同的做法吗?

谢谢您的回复,我用select args尝试了一下,但不起作用。上海 这是我正在使用的字符串,where子句是where.eq(“city_name”,上海)我也用硬代码字符串尝试过,然后它工作得很好,但问题是当我调试它时,pCity的值是%E4%B8%8A%E6%B5%B7,然后查询没有给出任何记录。。。