Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Проблема с кодировкой / 16 сообщений из 16, страница 1 из 1
12.04.2013, 11:16:04
    #38223122
hello_amigo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с кодировкой
Здравствуйте. Есть у меня некая строка (получаю название алиаса сертификата из Windows-MY Keystore). Вывожу эту строку через System.out.println в консоль. Отображается как "certificate îò CA". Я знаю, что "îò" - это "от", т.к. могу посмотреть информацию о сертификате через IE и там корректно отображается алиас.
На сколько я понимаю, то при выводе в консоль строка отображается как UTF-8.
Пробовал делать так:
Код: java
1.
System.out.println(new String(alias.getBytes("UTF-8"), "Windows-1251")); // теперь "îò"


Есть предположения как это сделать правильно?
Спасибо!
...
Рейтинг: 0 / 0
12.04.2013, 11:26:22
    #38223155
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с кодировкой
Лучше покажите как вы эту строку читаете. Попытка исправить кодировку это полумеры.
...
Рейтинг: 0 / 0
12.04.2013, 11:27:56
    #38223162
silvan
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с кодировкой
надо знать кодировку файла и консоли
iso-8859-1, cp866..
...
Рейтинг: 0 / 0
12.04.2013, 11:30:44
    #38223165
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с кодировкой
silvanнадо знать кодировку файла и консоли
iso-8859-1, cp866..
Консоли не надо. Java справится и без этого. Строка была в какой-то оригинальной кодировке. Её вычитали в другой. Чтобы получить изначальное значение, нужто использовать те же две кодировки. К консольному выводу это отношения не имеет.
...
Рейтинг: 0 / 0
12.04.2013, 11:32:31
    #38223170
hello_amigo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с кодировкой
Blazkowicz,
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
import java.security.KeyStore;
import java.util.Enumeration;

public class TestEncoding {
    public static void main(String[] args) throws Exception{
        KeyStore ks = KeyStore.getInstance("Windows-MY");
        ks.load(null, null);
        Enumeration<String> aliases = ks.aliases();
        
        while (aliases.hasMoreElements()) {
            String alias = aliases.nextElement();
            System.out.println("alias: " + alias);
        }
    }
}


В одном из алиасов (там где русское "от") вижу кракозяблу (
...
Рейтинг: 0 / 0
12.04.2013, 11:38:02
    #38223179
hello_amigo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с кодировкой
Код: java
1.
2.
3.
4.
5.
        String text = "&#238;&#242;";
        Set<String> keySet = Charset.availableCharsets().keySet();
        for (String key : keySet) {
            System.out.println("From UTF-8 to " + key + ": " + new String(text.getBytes("UTF-8"), key));
        }


Втупую перебором не вышло.
Пробую вот на этом сайте http://2cyr.com/decode/?lang=ru раскодировать. Там выходит. Теперь нужно понять как правильно преобразовать.
...
Рейтинг: 0 / 0
12.04.2013, 11:38:02
    #38223180
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с кодировкой
Пробовали запускать приложение с -Dfile.encoding=utf-8 ?
...
Рейтинг: 0 / 0
12.04.2013, 11:41:47
    #38223190
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с кодировкой
это iso-8859-1 и win-1251
Используйте их в вашем
System.out.println(new String(alias.getBytes("UTF-8"), "Windows-1251"));
точные имена сверяйте в
http://docs.oracle.com/javase/7/docs/technotes/guides/intl/encoding.doc.html
...
Рейтинг: 0 / 0
12.04.2013, 11:45:52
    #38223200
hello_amigo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с кодировкой
Blazkowicz, мега спасибо!!! Работает! Можете в двух словах сказать как Вы к этому пришли?
...
Рейтинг: 0 / 0
12.04.2013, 11:52:40
    #38223216
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с кодировкой
hello_amigoBlazkowicz, мега спасибо!!! Работает! Можете в двух словах сказать как Вы к этому пришли?
2cyr.com пишет какие кодировки были использованы при восстановлении строки. Я выбрал самые популярные из них
...
Рейтинг: 0 / 0
12.04.2013, 12:30:33
    #38223286
hello_amigo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с кодировкой
Blazkowicz, а можете рассказать, что Вы там нажимали? А то что-то я в упор не пойму как вы пришли к списку кодировок, которые были использованы.
...
Рейтинг: 0 / 0
12.04.2013, 12:55:11
    #38223337
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с кодировкой
hello_amigoBlazkowicz, а можете рассказать, что Вы там нажимали? А то что-то я в упор не пойму как вы пришли к списку кодировок, которые были использованы.
Открываем страницу.
Вводим испорченый текст.
Нажимаем ОК на автоматическом подборе.
Появляется желтая строка с красной надписью "Выберите вариант : "
Открываем список, находим "от", нажимаем OK
В "Расширенный режим" отображаются пары использованых кодировок.
...
Рейтинг: 0 / 0
12.04.2013, 13:04:37
    #38223356
hello_amigo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с кодировкой
Blazkowicz, всё, вижу. Спасибо!
...
Рейтинг: 0 / 0
12.04.2013, 20:27:10
    #38224088
lleming
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с кодировкой
Blazkowiczэто iso-8859-1 и win-1251
Используйте их в вашем
System.out.println(new String(alias.getBytes("UTF-8"), "Windows-1251"));
точные имена сверяйте в
http://docs.oracle.com/javase/7/docs/technotes/guides/intl/encoding.doc.html

Точные имена есть в StandardCharsets из jdk 7 как статические поля класса

StandartCharrsets.UTF-8
...
Рейтинг: 0 / 0
12.04.2013, 20:32:36
    #38224091
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с кодировкой
llemingТочные имена есть в StandardCharsets из jdk 7 как статические поля класса
StandartCharrsets.UTF-8
Это не "имена". Они там не все. Открой одно и другое и сравни количество.
...
Рейтинг: 0 / 0
12.04.2013, 22:39:44
    #38224140
lleming
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с кодировкой
Тут вы правы, да там не все кодировки.
Да там не имена, но можно
StandardCharsets.UTF-8.toString() или displayName по желанию

Мне UTF-8, ISO-Latin хватает.
jsp странички в utf8, а post parameters tomcat в ISO Latin всегда берет.

хотя работает если кодировку задавать как String

главное что странно 'windows-1251' и 'cp1251' работают одинаково хорошо, только
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Проблема с кодировкой / 16 сообщений из 16, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]