2015-03-15 4 views
0

Мне нужно создать строки slug (плагины для чтения текста из любой строки) для английских и неанглийских символов .. например, китайский, японский, кириллический и любой другой.java slugify string для неанглийских символов

Таким образом, каждая строка (для всех языков) должны быть переведены на английский язык символов A-Z, 0-9, например java-slugify-string-for-non-english-characters

Как я могу добиться этого в Java?

+0

Вы имеете в виду, что строки должны быть ascii? –

+0

Я имею в виду, что каждая строка (для всех языков) должна быть переведена на английском языке только az, 0-9, например, java-slugify-string-for-non-english-characters – alexanoid

+0

Итак, для «ロ グ イ ン», который я получил от на главной странице google.co.jp, что вы ожидаете от этого? – Kenster

ответ

0

Вы можете использовать Slugify, который написан на Java: https://github.com/slugify/slugify

+0

Работает ли он на всех языках? – alexanoid

+0

Я не уверен. Конструктор Slugify принимает объект Locale, чтобы он мог это сделать. –

+0

Я проверил код, библиотека slugify удаляет все символы без ascii. – Ayman

0

Преобразование каждого символа в его целочисленного представления и конкатенации:

String foo = "中国"; 
    StringBuilder result = new StringBuilder(); 
    for (int i=0; i<foo.length(); i++) { 
     result.append("\\").append((int)foo.charAt(i)); 
    } 
    System.out.println(result); 

Производит:

"\20013\22269"

... который довольно легко разбить и преобразовать обратно в строку. Вы также можете вставлять числа, преобразовывать их в шестнадцатеричные и добавлять исключения, чтобы символы ASCII/English не были преобразованы, если хотите. Вы также можете посмотреть other, more stardard ways на выполнение такого рода кодирования.

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