1

現時点では、趣味として小さな 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;

正確に何をすべきか教えてください。

前もって感謝します。

4

2 に答える 2

2

UTF-8 (これがデフォルト) はほとんどの外来文字と特殊文字をサポートするはずですが、おそらく文字列には正しい文字セットを使用する必要があります。古い文字列からカスタム文字セットを使用して新しい文字列を作成する方法は次のとおりです。

String newString = new String(oldString.getBytes(), Charset.YOUR_CHARSET_HERE);
于 2013-05-11T17:26:14.657 に答える