Передача строки для работы в правильной кодировке в Java

У меня есть папка Test со следующей папкой:

  • EY 1 P-¦+¡lohy k da+òov+¢m p-¦izn+ín+¡m 2002 - 2004

Тогда у меня есть следующий код

public static void main( String[] args )
{
    File f = new File( "C:\\Test" );
    File [] children = f.listFiles();

    System.out.println( children[0].getName() );
    System.out.println( System.getProperty("file.encoding") );


    lapi.createObjectEx( 0, 3489025, LAPI_DOCUMENTS.OBJECTTYPE, LAPI_DOCUMENTS.FOLDERSUBTYPE , children[0].getName(), ci, oi );

}

Я выполнил код дважды. Один раз с помощью отладчика Netbeans, а другой с помощью файла jar из командной строки Windows.

Отладочный вывод Netbeans

> EY 1 P-¦+¡lohy k da+òov+¢m p-¦izn+ín+¡m 2002 - 2004
> UTF-8

Вывод командной строки Windows

> EY 1 P-ª+ílohy k da+‗ov+óm p-ªizn+Ýn+ím 2002 - 2004
> Cp1252

Объект lapi означает Livelink API и используется для создания папки на сервере Livelink (теперь он называется Content Server), который является продуктом OpenText.

При выполнении из Netbeans создается папка с соответствующим именем на сервере Livelink. При выполнении из командной строки Windows имя папки содержит множество вопросительных знаков. Проблемы с кодировкой означают, что имя папки не отображается должным образом на результирующей веб-странице.

Есть ли у кого-нибудь идеи, как я могу исправить это и явно установить кодировку при передаче строки в мою функцию lapi?


person Bruno    schedule 21.04.2013    source источник
comment
Этот связанный вопрос может помочь: Установка кодировки символов Java по умолчанию   -  person Sean Connolly    schedule 21.04.2013
comment
Спасибо, будем читать.   -  person Bruno    schedule 21.04.2013


Ответы (1)


Используйте этот аргумент виртуальной машины (командной строки):

-Dfile.encoding=UTF-8
person johnchen902    schedule 21.04.2013
comment
Похоже, он работает, но будет ждать других ответов, прежде чем пометить его как правильный :-) - person Bruno; 21.04.2013