마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

Unicode를 string으로 사용시 질문드립니다.

0 추천
fontIcon (awesome font)를 textView를 이용하여 보여주려고 하는데요,

예를 들면,

TextView tvTestIcon = findViewId(R.id.tv_test_icon);

tvTestIcon.setTypeface(testTypeface);

tvTextIcon.setText(sTestIcon);

여기서 setTypeface까지는 이상이 없습니다. 그런데,

sTestIcon를 String sTestIcon = "\uEA62";

하여 사용하면, 정상적으로 font icon이 로드 되는데,

만약, unicode 값을 따로 가져와

sUnicode = "EA62"

sTexsIcon = "\\u" + sUnicode;

이런식으로 하면 그냥 \uEA62 setText로 출력이 되어버리네요, StringBuilder도 마찬가지인거 같고요,  정확한 인코딩이 필요해보이는데, 도저히 방법을 찾을 수가 없습니다. 고수님들 좋은 방법 없을까요?  오늘 하루를 거의 날리고 있네요..
익명사용자 님이 2018년 6월 1일 질문

2개의 답변

0 추천

http://sarangnamu.net/basic/basic_view.php?no=6238&page=1&sCategory=0&srhList=sTitle&srhWord=font

 

1, strings.xml 에 설정해서 사용하는 방법 

<resources> <!-- 이 형태로 구성하면 별도로 아래와 같이 설정할 필요 없이 R.string.fa_mobile 형태로 사용하면 된다. -->
    <string name="fa_mobile">&#62413;</string>
    <string name="fa_bolt">&#61671;</string>
</resources>

 

아니면 다음과 같이 변환해서 사용하면 됩니다. 

 

public void setIcon(@NonNull String text) {
        long hex = Long.parseLong(text, 16);

        super.setText(new String(new char[] { (char) hex }));
}

 

 

aucd29 (218,390 포인트) 님이 2018년 6월 1일 답변
0 추천
정석은 다음과 같이 처리하는게 맞습니다.

char ch1 = 0xEA62;
char ch2 = '\uEA62';

 

꼭 입력 값이 String이어야 한다면 다음과 같이 가능합니다.

String value = "EA62";
char ch3 = (char)Integer.parseInt(value, 16);
디자이너정 (42,810 포인트) 님이 2018년 6월 1일 답변
...