Проблема кодировки и другие...

 
 
 
Сообщения:22
1)Можете бить, но я правда читал форум, но к сожалению так и не разобрался :oops:
Проблема та же отображает только цифры и латиницу а все остальное -??????.
Как я понял обычно проблема в том что не указанна кодировка в потоках ввода или вывода (нужно указать кодировку ).
Но где ее смотреть?
Вот я создал объект стринг а какой кодировки не знаю.
есть метод возвращающий название кодировки?

Ну в общем если не трудно объясните пожалуйста или дайте ссылки где можно про это почитать поподробнее(желательно на русском)


// Использование буферизированного ввода.
import java.io.*;
class BufferedInputStreamDemo {
    public static void main(String args[]) 
    throws IOException { 
        String s = "Это123: © есть символ авторского права, " +
                "а это: &copy - нет.\n";
        byte buf [] = s.getBytes();
        ByteArrayInputStream in = new ByteArrayInputStream(buf);
        BufferedInputStream f = new BufferedInputStream(in);
        int c;
        boolean marked = false;
        while ((c = f.read()) != -1) {
            switch(c) {
                case '&':
                    if (!marked) {
                        f.mark(32);
                        marked = true; 
                    }
                    else {
                        marked = false;
                    }
                    break;
                case ';' :
                    if (marked) {
                        marked = false;
                        System.out.print(" (c)");
                    }
                    else
                        System.out.print((char) c);
                    break;
                case ' ' :
                    if (marked) {
                        marked = false;
                        f.reset();
                        System.out.print("&");
                        }
                    else
                        System.out.print((char) c);
                    break;
                default:
                    if (!marked)
                        System.out.print((char) c);
                    break; 
            }
        }
    }
}



2) Я сейчас перешел на оперу и почему-то не могу войти на форум уже и пароль поменял все равно ни как думал что-то с форумом пока не поднял IE)))
На всех остальных сайтах все работает норм.
может кто знает в чем проблема??

3) Еще вопрос чем так знаменательна дата 1 января 1970 или разработчики просто так взяли эту дату??
 
 
Сообщения:83
s.getBytes(); в этой функе указываеш параметром кодировку например
s.getBytes("utf8"); Юникод однако! Дерзай

Слабому духом – сильное тело не к лицу, сильный же духом оденет его в тело любое
 
 
Сообщения:3874
1. Строки в Java хранятся в кодировке UTF-16.
2. Для получения бинарного вида строки в другой кодировке используйте метод getBytes(<имя_кодировки>).
3. для получения строки из потока нужно создать строку с помощью конструктора
String(byte bytes[], String charsetName)
где charsetName - имя кодировки которая будет использована для раскодирования бинарных данных.
4. Использовать int для получения символа (вместе с преведением типов) - пережитки прошлого. Заверните ваш BufferedInputStream в DataInputStream и вызвайте метод readChar(), для получения символа (если вы будет использовать кодировку как у вас в примере (т.е. дефолтную).
 
 
Сообщения:22
Огромное спасибо за такие столь подробные объяснения!!!

оО :D это у меня книжка старовата(или простовата) там только FilterInputStream немного описан а о
DataInputStream вообще ничего не говорится :(
(ну вроде сам класс посмотрел))
2) Может кто мазилой пользуется??? У вас все нормально при входе на форум??(как смотрел независимый тес мазила не особо отстает в скорости от оперы ну и всяк быстрее IE)
3) Вопрос про 1 января 1970 остается открытым вдруг кто знает( хотя отец мне сказал что это разработчики просто так дату назначили))

И модератору спасибо :wink:
 
Модераторы:Нет
Сейчас эту тему просматривают:Нет