안드로이드 개발 질문/답변
(글 수 45,052)
왜 마지막 단어만 밑으로 내려갈까요?
TextView.setText(new String(encodeChar("\\uac74\\uac15 \\ubc0f \\uc758\\ub8cc"))); //건강 및 의료 private char[] encodeChar(String str) { // TODO Auto-generated method stub StringBuffer sb = new StringBuffer(str); char[] data = new char[sb.length()]; int cnt = 0; while(sb.indexOf("\\u") != -1){ if (sb.charAt(0) == '\\'){ sb.replace(0, 2, "0x"); data[cnt] = (char)Integer.parseInt(String.valueOf(Long.decode(sb.substring(0, 6)))); sb = sb.delete(0, 6); }else if(sb.charAt(0) == ' '){ data[cnt] = ' '; sb = sb.delete(0, 1); }else if (sb.charAt(0) == '-'){ data[cnt] = '-'; sb = sb.delete(0, 1); }else { Log.e("MyTag", "잘못된 문자"); return null; } cnt++; } return data; }
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/main"
>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/textview"
/>
</LinearLayout>
2010.08.03 11:47:10
정확한건 아니지만 저런 현상일때 가장 먼저 해볼것이 리니어를 릴레이티브래이아웃이나 프래임레이아웃으로 바꿔볼것
android:orientation="vertical"를 호리존탈로 바꾸던지 지워버려볼것 또한 래이아웃은 fill_parent 텍스트뷰는 가로세로wrap_content로 해볼것 이네요 ㅎ;;이중 하나 일듯해여;;
2010.08.03 13:38:31
흠..원인은 좀 더 분석을 해 봐야겠지만.. 위에 소스를 이용하니까 확실히 마지막 단어가 줄 바꿈을 하네요.
인코딩 방식의 문제인거 같습니다. 아래와 같이 인코딩하면 아무 문제 없습니다.
int[] iTemp = { 0xac74, 0xac15, 0x20, 0xbc0f, 0x20, 0xc758, 0xb8cc };
String temp = new String(iTemp, 0, iTemp.length);
text.setText(temp);
2010.08.03 16:17:18
읽어온 값들이 option.innerHTML = "\uac74\uac15 \ubc0f \uc758\ub8cc - \uac80\uc548\uc0ac"; 부분의 "\uac74\uac15 \ubc0f \uc758\ub8cc - \uac80\uc548\uc0ac" 를 패턴으로 읽어오는거라...
레이이웃 바꾸는거론 별로 달라진게 없네요. 한글자 한글자씩 출력해봐도 왜 마지막 단어만 저렇게 되는지 모르겠네요
레이이웃 바꾸는거론 별로 달라진게 없네요. 한글자 한글자씩 출력해봐도 왜 마지막 단어만 저렇게 되는지 모르겠네요
2010.08.03 16:24:37
변환된 값을 int형으로 출력해봐도 인코딩 자체에는 문제가 없어 보이네요.
혹시 String의 자체문제일 수도 있으니까 먼저 \\uac15같은 패턴을 int형으로 변환한 다음 다시 제가 한 방식처럼 변환하면
어떨까요?