Android:在ListView中显示特殊字符

时间:2013-05-11 17:18:14

标签: java android html listview

此时我正在创建一个小型Android应用程序,这是一个爱好。 它并不严肃:它从sqlite数据库进行查询,并在listview元素中显示结果。如果单击列表中的某个项目,它将使用该元素的内容进行另一个查询,并显示新结果。 (例如,您点按一个城市,它会显示该城市的餐馆。如果您点按该城市,则会显示可用的食物)

现在我的问题是这些文本中的大多数包含一些未正确显示的特殊字符(如Ľ - u013D)。由于它们显示不正确,我也无法与它们进一步查询。 我已经尝试了很多方法,主要是我在这个论坛上看到的,但不幸的是,我太过于努力了。这就是我所拥有的:

//DataBaseHandler is just a custom class creating and executing SQL queries, nothing special. It extends to SQLiteOpenHelper
DataBaseHandler db=new DataBaseHandler(this);

//getStations returns a List<String> object with the required items, contains raw strings        
ArrayList<String> StationList=(ArrayList<String>) db.getStations(i.getStringExtra("jaratszam"));

db.close();

lv=(ListView) findViewById(R.id.listStation);

ArrayAdapter<String> aa=new ArrayAdapter<String>(this, R.layout.tv, StationList);          

lv.setAdapter(aa);

我试图用Html.fromHtml修改我得到的字符串,也修改了CharSequence [],但没有人帮忙(我想我没有正确使用它们)。我也修改了我的数据库,我已经将特殊字符更改为html代码,例如

&#00E1;

请你告诉我我该怎么办?

提前致谢。

2 个答案:

答案 0 :(得分:2)

您可能需要为String使用正确的字符集,尽管UTF-8(默认值)应该支持大多数外来字符和特殊字符。以下是使用旧字符串中的自定义字符集创建新String的方法:

String newString = new String(oldString.getBytes(), Charset.YOUR_CHARSET_HERE);

答案 1 :(得分:1)

  

现在我的问题是这些文本中的大多数都包含一些特殊内容   字符(如Ľ - u013D)无法正确显示。

尝试编码字符串,然后将其放入数据库并解码,然后再在应用程序中使用它。