2012-07-02 2 views
0

мой код с использованием языка сервлета, который читает текст за строкой и заполняет буфер строки каждые 5000 слов в строчном буфере, а затем отображает содержимое на странице jsp, и я помещаю текст заголовка в utf-8 проблема заключается в том, что текст в utf-8, кодирующий код, читается в нековалентном символе, и я хочу, чтобы мой код читал текст в utf-8, а текст, показанный пользователю в кодировке utf-8 , - это мой код для читать текстКодирование текста с помощью кода Java

try{ 
    File file = new File(p);   
    l = (int) file.length(); 
    String s = null,strr=null; 
    String g = null,m=null; 
    int i = 0; 
    Scanner input = new Scanner(file); 
    s1 = new StringBuffer(); 
    s2 = new StringBuffer(); 
    while (input.hasNextLine()) { 
    g = input.nextLine(); 
    String[] d = g.split(" "); 
    int h = d.length; 
    i = i + h; 
    if (i > 5000) { 
     break; 
    } 
    s1.append(g).append(System.getProperty("line.separator")); 
    } 
    if(i > 5000) { 
    s2.append(g).append(System.getProperty("line.separator")); 
    while(input.hasNextLine()) { 
    s = input.nextLine(); 
    String[] d = s.split(" "); 
    int h = d.length; 
    i=0; 
    i=i+h; 
    if (i > 5000) { 
     break; 
    } 
    s2.append(s).append(System.getProperty("line.separator"));} 
    if (input.hasNextLine()) { 
     s3.append(s).append(System.getProperty("line.separator")); 
     while(input.hasNextLine()) { 
     strr = input.nextLine(); 
     s3.append(strr).append(System.getProperty("line.separator")); 
     } 
    } 
    } 
input.close(); 
} catch (Exception e) { 
    e.getMessage(); 
} 
+2

могли бы вы попробовать использовать заглавные буквы и знаки препинания, это сложно понять текст, который не структурирован на всех спасибо заранее ps нарушение текста в абзацы может быть аккуратной идеей тоже – Vlad

+0

@ Vlad: irony? :) –

+0

@Andrzej: Да! :) Мой мозг отказывается разбирать текст вопроса, создавая страшное исключение. – Vlad

ответ

0

Проверьте Javadocs из методов, которые вы используете - Scanner(File) конструктор позволяет узнать, что:

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

Вместо этого, вы можете вызвать Scanner(File, String) конструктор явно указать файл кодировки:

Scanner input = new Scanner(file, "UTF-8"); 
+0

спасибо, и я пробовал ваш ответ, но результат не показан – user1395677

+0

@user Ну, это звучит правильно, учитывая, что у вас нет никаких операторов 'println'. Или вы говорите, что у вас есть основания полагать, что указание набора символов означает, что файл считается пустым? –

+0

Я показываю текст на странице jsp с помощью тега usebean. – user1395677

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