Java Android:在ListView中显示特殊字符

Java Android:在ListView中显示特殊字符,java,android,html,listview,Java,Android,Html,Listview,此时此刻,作为一种爱好,我正在创建一个小型Android应用程序。 这并不严重:它从sqlite数据库进行查询,并在listview元素中显示结果。如果单击列表中的某个项目,它将对该元素的内容进行另一次查询,并显示新结果。(例如,点击城市,它会显示城市中的餐馆。如果点击城市,它会显示可用的食物) 现在我的问题是,大多数文本都包含一些特殊字符(如Ľ-u013D),这些字符没有正确显示。由于它们没有正确显示,我也无法对它们进行进一步的查询。 我已经尝试了很多方法,主要是我在这个论坛上看到的,但不幸的

此时此刻,作为一种爱好,我正在创建一个小型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);
你能告诉我该怎么做吗


提前感谢。

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

String newString = new String(oldString.getBytes(), Charset.YOUR_CHARSET_HERE);
现在我的问题是,大多数这些文本都包含一些特殊的内容 未正确显示的字符(如Ľ-u013D)


尝试在将字符串放入数据库之前对其进行编码,并在将其用于应用程序之前对其进行解码。

我相信我最终解决了这个问题。首先,我尝试了你的解决方案。它对元音非常有效,但对辅音却不起作用。然后它让我震惊:原来的编码!我已经为sqlite生成了一个脚本,它是用windows的记事本保存的。我花了大约5个小时试图解决这个问题。记事本默认使用ANSI编码,我并没有注意到这一切都搞砸了。一旦我把它改成UTF-8,它就像一个符咒!有趣的是,大约2年前我也遇到过类似的问题,当时也花了几个小时。嗯,我希望有一天我能学会:)
String newString = new String(oldString.getBytes(), Charset.YOUR_CHARSET_HERE);