Модераторы: LSD, AntonSaburov

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Кодировка и проблемы с ней, DBF to DBF 
V
    Опции темы
agR
Дата 20.7.2007, 14:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 140
Регистрация: 19.7.2006
Где: Киев

Репутация: 2
Всего: 2



Цитата(fixxer @  20.7.2007,  13:44 Найти цитируемый пост)
Я Вам дал ссылку на драйвер. Он должен поддерживать расширенный синтаксис SQL

Сдается мне он работает еще хуже чем прошлый.
База так и не создалась. Та и ведет он себя неадекватно.
Но все равно, спасибо.

Добавлено через 6 минут и 39 секунд
Цитата(fixxer @  20.7.2007,  14:44 Найти цитируемый пост)
А вот и неправда Ваша. Работает. Как cp1251 так и cp866.
Пример содрал из туториала, только заменил поле во второй записи на русское слово "Тест"


аааАААааааААаааааа!!!!!!!!!!!!!!!!!!!!!!!!!!!
Работает!!!  smile  smile  smile 
fixxer, позвольте вам выразить свое восхищение!!!!
Огромное спасибо, за потраченное время.

PM MAIL ICQ   Вверх
AntonSaburov
Дата 20.7.2007, 15:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Штурман
****


Профиль
Группа: Модератор
Сообщений: 5658
Регистрация: 2.7.2002
Где: Санкт-Петербург

Репутация: 51
Всего: 118



Плюс fixxer явно заслужил.
PM MAIL WWW ICQ   Вверх
Kisja
Дата 31.7.2007, 16:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 30.7.2007

Репутация: нет
Всего: нет



Цитата(fixxer @ 20.7.2007,  14:44)
А вот и неправда Ваша. Работает. Как cp1251 так и cp866.
Пример содрал из туториала, только заменил поле во второй записи на русское слово "Тест"

И как же Вам удалось єто заставитт работать нормально.
Я запускаю этот скрипт (когда writer.setCharactersetName("cp866");) у себя, создаеться дбф-файл с нужной структурой, но записей нет, а в консоль мне выдает:

Exception in thread "main" com.linuxense.javadbf.DBFException: Cp866
    at com.linuxense.javadbf.DBFWriter.write(DBFWriter.java:246)
    at DBFWriterTest.main(DBFWriterTest.java:59)

когда устанавливаю кодовою страницу cp1251 (writer.setCharactersetName("cp1251");), файл создаеться нормально, но вместо кирилицы (вместо слова "тест") в поле дбв-файла вижу "TхёЄ".

Помогите разобраться с кодировками.
PM MAIL   Вверх
agR
Дата 1.8.2007, 01:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 140
Регистрация: 19.7.2006
Где: Киев

Репутация: 2
Всего: 2



Вот тот код, который работает у меня (ненужное вырезано). Проверьте, может в чем-то вы ошиблись.
Код

package DBFdeCoder;

import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Date;

import com.linuxense.javadbf.DBFException;
import com.linuxense.javadbf.DBFField;
import com.linuxense.javadbf.DBFWriter;

class WriteDBF {
    private ReadDBF db;
    
    public WriteDBF() throws Exception {

        .......................

        
        DBFWriter writer = new DBFWriter();

        writer.setCharactersetName("cp866"); //!!!!!!!!!!!!!!

        DBFField[] fields = new DBFField[18];
        
        //NAME
        fields[0] = new DBFField();
        fields[0].setName("NAME");
        fields[0].setDataType(DBFField.FIELD_TYPE_C);
        fields[0].setFieldLength(40);
        
        //NNOM
        fields[1] = new DBFField();
        fields[1].setName("NNOM");
        fields[1].setDataType(DBFField.FIELD_TYPE_C);
        fields[1].setFieldLength(10);
        
        //PERSON
        fields[2] = new DBFField();
        fields[2].setName("PERSON");
        fields[2].setDataType(DBFField.FIELD_TYPE_C);
        fields[2].setFieldLength(20);
        
        ..............................
                //и еще 15 подобных созданий полей
        
        writer.setFields(fields);
        Date now = new Date();
        Object rowData[] = new Object[18];
        rowData[0] = "Русский текст";
        rowData[1] = "Русский текст";
        rowData[2] = "Русский текст";
        rowData[3] = "Русский текст";
        rowData[4] = now;
        rowData[5] = "1";
        rowData[6] = "1";
        rowData[7] = "1";
        rowData[8] = "1";
        rowData[9] = new Double(1.5);
        rowData[10] = new Double(1.5);
        rowData[11] = new Double(1.5);
        rowData[12] = oldString[0][0];// здесь кстати тоже русский текст
        rowData[13] = "14.code";
        rowData[14] = new Double(5000.0);
        rowData[15] = "15.sc";
        rowData[16] = "1";
        rowData[17] = "16.sch";
            
        writer.addRecord(rowData);
        FileOutputStream fos = new FileOutputStream("\\Путь к файлу\\");
        writer.write(fos);
        fos.close();
        }
}

Пример тестовый... но главное - работает.

Может у вас нет самой кодировки... Тогда вам сюда 


Это сообщение отредактировал(а) agR - 1.8.2007, 11:28
PM MAIL ICQ   Вверх
Kisja
Дата 2.8.2007, 17:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 30.7.2007

Репутация: нет
Всего: нет



Цитата(agR @  1.8.2007,  01:51 Найти цитируемый пост)
Может у вас нет самой кодировки... Тогда вам сюда


Действительно кодировок не было.
Я подозревала, что что то те так в системе, так как под линуксом все работало без проблем.

Спасибо, помогли.
PM MAIL   Вверх
diablero
Дата 20.8.2009, 13:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 337
Регистрация: 3.12.2006
Где: Аркхэм

Репутация: 1
Всего: 5



Код

writer.setCharactersetName("cp866");

Но до конца, есть проблема например с ковычками («), они заменяются на ?

Как такое решить?


--------------------
Есть два варианта решения проблемы - реальный и фантастический. Реальный - это когда прилетят инопланетяне и все за нас сделают ...
PM MAIL   Вверх
fixxer
Дата 20.8.2009, 13:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 672
Регистрация: 14.9.2006
Где: Саратов, Россия

Репутация: 6
Всего: 27



Цитата(diablero @ 20.8.2009,  13:08)
Код

writer.setCharactersetName("cp866");

Но до конца, есть проблема например с ковычками («), они заменяются на ?

Как такое решить?

вопрос в том, есть ли такие кавычки (французские - «) в стандартном наборе символов cp866


--------------------
user posted image
PM MAIL ICQ   Вверх
diablero
Дата 20.8.2009, 14:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 337
Регистрация: 3.12.2006
Где: Аркхэм

Репутация: 1
Всего: 5



Цитата(fixxer @  20.8.2009,  13:56 Найти цитируемый пост)
вопрос в том, есть ли такие кавычки (французские - «) в стандартном наборе символов cp866


Они есть в 1251, а в 866 их нет, есть только ".


Получается что необходимо в строке проверять их наличие и заменять аналогами. Но это не айс.


--------------------
Есть два варианта решения проблемы - реальный и фантастический. Реальный - это когда прилетят инопланетяне и все за нас сделают ...
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0515 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.