2013-07-22 4 views
1

, например.Как преобразовать строку в «html» ascii-код с помощью Java?

B is uppercase B. 
so if I have string like "BOY". I want it converted to BOY 

Я надеюсь, что есть уже библиотека, которую я могу использовать. Я обыскал сеть, но я ее не видел.

благодарит

+0

Готовый класс UTIL: http: //www.mkyong.com/java/how-to-convert-character-to-ascii-in-java/ –

+1

@sureshatta: пожалуйста, не используйте здесь «ASCII». В наши дни ASCII практически неактуальен, и использование в этих местах дает неправильные впечатления. Вы * либо * ссылаетесь на unicode codepoints * или * bytes в некоторой кодировке (это возможно * на основе * ASCII, но почти ** никогда не было ** ASCII в наши дни). –

ответ

5

Вы можете попробовать написать свою собственную утилиту:

String input = "BOY"; 
char[] chars = input.toCharArray(); 

StringBuilder output = new StringBuilder(); 

for (char c : chars) 
{ 
    output.append("&#").append((int) c).append(";"); 
} 

содержимого вывода после выполнения:

BOY 
+1

-1, 'String + =' is evil, вместо этого используйте StringBuilder. – gaborsch

+0

@GaborSch Я знаю это, но цель состоит в том, чтобы дать идею решения OP, и я думаю, что мой ответ делает это. если вопросы производительности приходят в дискуссию, конечно, вы правы. так что вы можете удалить ваш downvote? – Juvanis

+3

OP - это новичок, не учат неправильным узорам. Голосование заблокировано, если вы используете StringBuilder, я, конечно, удалю вниз. – gaborsch

7

Эти коды не являются лишь конкатенации &# и ; с Unicode элемент кода для каждого персонажа. Вы можете перебрать каждый символ в строке, и сделать:

output.append("&#") 
    .append((int)ch) 
    .append(";"); 

Где output относится к StringBuilder инстанции.

+1

Строго говоря, это код Unicode (начиная с HTML4 и почти в каждой современной среде). Пожалуйста, не распространяйте неверную информацию «ASCII». В наши дни ASCII практически неактуальен. –

+0

@JoachimSauer. Да правильно. Будет редактировать ответ. –

+0

@JoachimSauer Один вопрос по этому подходу: если мое понимание верное, этот способ не будет давать кодовую точку Unicode, а представление UTF-16BE. Правильно ли я понимаю? –

Смежные вопросы