2013-05-11 5 views
1

취미로 작은 Android 앱을 만들고 있습니다. 심각한 문제가 아닙니다. sqlite 데이터베이스에서 쿼리를 만들고 결과를 listview 요소에 표시합니다. 목록의 항목을 클릭하면 요소의 내용으로 다른 쿼리가 만들어지고 새 결과가 표시됩니다. (예를 들어 도시를 탭하면 식당 도시가 표시됩니다. 도시를 탭하면 사용할 수있는 음식이 표시됩니다.)Android : ListView에 특수 문자 표시

이제는 대부분의 텍스트에 특수 문자가 포함되어 있습니다. u013D)가 올바르게 표시되지 않습니다. 그리고 그들은 정확하게 표시되지 않기 때문에, 나는 그들과 더 이상의 질의를 할 수 없습니다. 나는이 포럼에서 주로 본 많은 방법을 시도했지만, 불행히도 그 멍청함이 너무 많습니다. 나는 또한 내가 돌아 Html.fromHtml로받은 문자열의 CharSequence []를 수정하기 위해 노력했다

//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); 

, 그러나 아무도는 (내가 올바르게 사용하지 않은 추측) 전혀 도움이 내가 가진 것입니다. 난 당신이 내가 정확히 무엇을해야하는지 가르치 려 주실 래요

&#00E1; 

처럼, 내 데이터베이스는, 내가 HTML 코드에 특수 문자를 변경 한 수정 한?

미리 감사드립니다.

답변

2

UTF-8 (기본값)이 대부분의 외국 및 특수 문자를 지원해야하지만 사용자가 문자열에 올바른 문자 집합을 사용해야 할 수도 있습니다. 다음은 오래된 문자열에서 사용자 지정 캐릭터 세트로 새로운 문자열을 만드는 방법은 다음과 같습니다

지금
String newString = new String(oldString.getBytes(), Charset.YOUR_CHARSET_HERE); 
+0

나는 마침내 문제가 있다고 생각한다. 먼저 솔루션을 사용해 보았습니다. 그것은 모음으로 완벽하게 작동하지만 자음으로는 작동하지 않습니다. 그리고 나서 그것은 나를 때렸습니다 : 원래의 인코딩! 나는 sqlite에 대한 스크립트를 윈도우의 메모장에 저장했다. 나는 이것을 약 5 시간 동안 풀려고했다. 메모장은 기본적으로 ANSI 인코딩을 사용하여 모든 것을 망쳤다는 것을 알지 못했습니다. 일단 UTF-8로 변경하면 매력처럼 작동했습니다! 재미있는 점은 약 2 년 전에도 비슷한 문제가 있었고 몇 시간이 걸렸습니다. 글쎄, 나는 언젠가 그것을 배울 수 있기를 바랍니다 :) – skandigraun

+0

물론 답에 감사드립니다. – skandigraun

+0

다행스럽게 도울 수있었습니다! –

1

내 문제는 이러한 텍스트의 대부분 (L처럼 - u013D) 특별한 문자를 포함 할 것입니다 제대로 표시되지 않는 .

문자열을 데이터베이스에 저장하기 전에 인코딩하고 응용 프로그램에서 사용하기 전에 디코딩하십시오.