Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: проблема с кодировкой  (Прочитано 20869 раз)
0 Пользователей и 1 Гость смотрят эту тему.
remedius
Гость
« : 16-12-2006 13:46 » 

Никак не получается подобрать значения для COLLATE так, чтоб оно соответсвовало кодироке файла txt.
Т.е. Если я пишу для БД COLLATE Cyrillic_General_CI_AS, то в каком виде надо сохранить мне txt файл, что потом читались русский слова, если например в txt файле что-то типа: INSERT my_table VALUES('значение').
Спасибо
« Последнее редактирование: 12-12-2007 15:26 от Алексей1153++ » Записан
Dimka
Деятель
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #1 : 17-12-2006 07:47 » 

Не понятно. Что значит "соответствовало кодировке файла"? Что пишется в БД вместо 'значение'?
« Последнее редактирование: 12-12-2007 15:26 от Алексей1153++ » Записан

Программировать - значит понимать (К. Нюгард)
Невывернутое лучше, чем вправленное (М. Аврелий)
Многие готовы скорее умереть, чем подумать (Б. Рассел)
remedius
Гость
« Ответ #2 : 17-12-2006 11:18 » 

 'значение' - слово на русском языке.
Проблема в том, что в таблицах абра кодабра. Нужно как-то совместить кодировку txt файла с кодировкой БД. Чтобы русские слова нормально проипсывались.
« Последнее редактирование: 12-12-2007 15:27 от Алексей1153++ » Записан
Dimka
Деятель
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #3 : 17-12-2006 18:12 » 

Может проблема не в записи, а в чтении? Ага Ведь заявить "в таблицах абракадабра" можно только на основании чтения этих таблиц. А как это чтение проходит - вопрос отдельный Улыбаюсь.

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

Программировать - значит понимать (К. Нюгард)
Невывернутое лучше, чем вправленное (М. Аврелий)
Многие готовы скорее умереть, чем подумать (Б. Рассел)
remedius
Гость
« Ответ #4 : 17-12-2006 20:06 » 

Не понимаю, что еще написать.
Есть txt файл, в котором записаны комманды. Например INSERT my_table VALUES('значение'). Запускаю cmd выполняю даный txt. Вот и все. После в таблице my_table вместо слова 'значение' абра кадабра.
« Последнее редактирование: 12-12-2007 15:28 от Алексей1153++ » Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #5 : 17-12-2006 20:09 » 

remedius, во время исполнения программы переключи раскладку на русскую Ага Просто попробуй, это как эксперимент
Записан

remedius
Гость
« Ответ #6 : 17-12-2006 20:10 » 

какой программы???
Записан
Finch
Спокойный
Администратор

il
Offline Offline
Пол: Мужской
Пролетал мимо


« Ответ #7 : 17-12-2006 20:25 » 

remedius, Вопрос. Я так понял по фразе cmd, что ты запускаеш программу в консоле и программа твоя работает в консоле?

Второй вопрос: Как ты записываеш текст в базу?
Записан

Не будите спашяго дракона.
             Джаффар (Коша)
remedius
Гость
« Ответ #8 : 17-12-2006 20:27 » 

1.значит так. Я пишу что типа:
isql -E -n -imy_txt_file.sql
2. Вот так:INSERT my_table VALUES('значение')
« Последнее редактирование: 12-12-2007 15:29 от Алексей1153++ » Записан
Finch
Спокойный
Администратор

il
Offline Offline
Пол: Мужской
Пролетал мимо


« Ответ #9 : 17-12-2006 20:32 » 

remedius, Когда ты набираеш русский текст в IDE. Как правило в кодировке Windows-1251. В консоле работает кодировка CP866. Нужно при выводе текста переводить кодировку с помошью OEM  функций.
« Последнее редактирование: 17-12-2006 20:38 от Finch » Записан

Не будите спашяго дракона.
             Джаффар (Коша)
remedius
Гость
« Ответ #10 : 17-12-2006 20:34 » 

я русский текст набираю в txt файле. Не понимаю, что я должна сделать.
Записан
Finch
Спокойный
Администратор

il
Offline Offline
Пол: Мужской
Пролетал мимо


« Ответ #11 : 17-12-2006 20:39 » 

Русский текст ты набираеш в текстовом редакторе самой винды?
Записан

Не будите спашяго дракона.
             Джаффар (Коша)
remedius
Гость
« Ответ #12 : 17-12-2006 20:43 » 

ну да. Прям там я пишу:INSERT my_table VALUES('значение')
« Последнее редактирование: 12-12-2007 15:30 от Алексей1153++ » Записан
Finch
Спокойный
Администратор

il
Offline Offline
Пол: Мужской
Пролетал мимо


« Ответ #13 : 17-12-2006 20:58 » 

Перед тем как выводить на консоль текст, обработой его функцией CharToOem
Записан

Не будите спашяго дракона.
             Джаффар (Коша)
remedius
Гость
« Ответ #14 : 17-12-2006 21:00 » 

не поняла все равно. Я его на консоль не вывожу. Я использую консоль чтобы связаться БД и выолнить комманды в txt. А табоички я просматриваю уже в ентерпрайз манагере, или посредством запросов.
Записан
Finch
Спокойный
Администратор

il
Offline Offline
Пол: Мужской
Пролетал мимо


« Ответ #15 : 17-12-2006 21:58 » 

Примерно понял. Как вариант. При записи текстового файла, сохранить его в кодировке CP866 и попробывать его запустить Улыбаюсь Но скорее всего в самой базе должен быть перекодировшик.
Записан

Не будите спашяго дракона.
             Джаффар (Коша)
remedius
Гость
« Ответ #16 : 17-12-2006 22:09 » 

Замечательно, а как его сохранить то в CP866? Я могу сохранить только в Unicode, UTF-8, ANSI:)
Записан
HandKot
Молодой специалист

ru
Offline Offline

« Ответ #17 : 18-12-2006 06:40 » 

'значение' - слово на русском языке.
Проблема в том, что в таблицах абра кодабра. Нужно как-то совместить кодировку txt файла с кодировкой БД. Чтобы русские слова нормально проипсывались.
используйте утилиту isqlw.exe в ней можно задать кодировку входного файла
для кодировки виндоус будет А
примерно так
Код:
isqlw -S МойСервер -d МояБаза -E -i test.sql  -FA

ЗЫЖ есть подозрение, что isql просто не поддерживает русскую кодировку
« Последнее редактирование: 12-12-2007 15:32 от Алексей1153++ » Записан

I Have Nine Lives You Have One Only
THINK!
Dimka
Деятель
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #18 : 18-12-2006 13:39 » 

А ещё лучше osql. Утилита isql работает как клиент SQL Server 6.5 и считается устаревшей - не может выполнять некоторые команды. Утилита osql работает как клиент SQL Server 2000 и обладает большими возможностями.
Записан

Программировать - значит понимать (К. Нюгард)
Невывернутое лучше, чем вправленное (М. Аврелий)
Многие готовы скорее умереть, чем подумать (Б. Рассел)
remedius
Гость
« Ответ #19 : 18-12-2006 16:38 » 

Действительно проблема была в этом!
Спасибо!
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines