Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 Как отобразить буквы в восточноеевропейской кодировке  [new]
jsq
Member

Откуда: Россия
Сообщений: 81
В БД (SQL2k) хранятся строки на литовском языке - все в полях varchar. И вероятно все там правильно хранится, но не знаю, как визуально увидеть все это в оригинальном начертании. Вместо хитрых литовских буковок которые не соотвествуют английским - то есть должны вероятно быть с разными точками наверху - в QA выдаются русские кондовые Л, Ы и т.п. Подозреваю, что это связано с настройкой винды, но в винде у меня стоят галочки напротив всех возможных кодировок. Что на самом деле это такое и как лечится?
30 мар 06, 13:44    [2506638]     Ответить | Цитировать Сообщить модератору
 Re: Как отобразить буквы в восточноеевропейской кодировке  [new]
jsq
Member

Откуда: Россия
Сообщений: 81
Братья европейцы, неужели не поделитесь опытом?
30 мар 06, 13:55    [2506705]     Ответить | Цитировать Сообщить модератору
 Re: Как отобразить буквы в восточноеевропейской кодировке  [new]
saint
Member

Откуда: Архангельск
Сообщений: 2262
проблема думаю в COLLATION.

какой колейшен у столбца с данными, у БД и у сервера?
30 мар 06, 13:55    [2506706]     Ответить | Цитировать Сообщить модератору
 Re: Как отобразить буквы в восточноеевропейской кодировке  [new]
jsq
Member

Откуда: Россия
Сообщений: 81
saint
проблема думаю в COLLATION.
какой колейшен у столбца с данными, у БД и у сервера?

У сервера и у БД и у столца - Cyrillic_General_CI_AS
(а все туда же - в европу лез человек!)
То есть надо сменить колэйшн у столбца?
30 мар 06, 14:01    [2506745]     Ответить | Цитировать Сообщить модератору
 Re: Как отобразить буквы в восточноеевропейской кодировке  [new]
saint
Member

Откуда: Архангельск
Сообщений: 2262
можно попробовать сменить у столбца (если он содержит данные только на литовском)

можно еще в запросе менять колейшен:

select mycol COLLATE new_collation
30 мар 06, 14:05    [2506767]     Ответить | Цитировать Сообщить модератору
 Re: Как отобразить буквы в восточноеевропейской кодировке  [new]
saint
Member

Откуда: Архангельск
Сообщений: 2262
только бекап сделайте прежде чем менять
30 мар 06, 14:05    [2506772]     Ответить | Цитировать Сообщить модератору
 Re: Как отобразить буквы в восточноеевропейской кодировке  [new]
BrokenPot
Member

Откуда: Киев
Сообщений: 1405
Пожалуй, важнее, чтобы шрифт, которым вы собираетесь отобразить, умел показать литовские буковки. В том шрифте, которым вы отображаете, есть литовские буквы? Каким кодам они там соответствуют?
30 мар 06, 14:25    [2506880]     Ответить | Цитировать Сообщить модератору
 Re: Как отобразить буквы в восточноеевропейской кодировке  [new]
jsq
Member

Откуда: Россия
Сообщений: 81
BrokenPot
Пожалуй, важнее, чтобы шрифт, которым вы собираетесь отобразить, умел показать литовские буковки. В том шрифте, которым вы отображаете, есть литовские буквы? Каким кодам они там соответствуют?
Уже сменил в настройках QA все виды шрифтов с "Courier Western" на "Courier Easterneuropean". Теперь буду менять колэйшн.
30 мар 06, 14:42    [2506987]     Ответить | Цитировать Сообщить модератору
 Re: Как отобразить буквы в восточноеевропейской кодировке  [new]
jsq
Member

Откуда: Россия
Сообщений: 81
saint
select mycol COLLATE new_collation


SELECT 
	prim COLLATE SQL_Lithuanian_Cp1257_CI_AS
FROM 
        tb
Результат:
...DETAL?S TINKA I?...
- вместо хитрых буковок теперь показались вопросы, раньше были разные русские элы.
30 мар 06, 14:54    [2507043]     Ответить | Цитировать Сообщить модератору
 Re: Как отобразить буквы в восточноеевропейской кодировке  [new]
jsq
Member

Откуда: Россия
Сообщений: 81
А кто нибудь может прочеть то что между символами подчеркивания правильно на своем экране:
___DETALЛS TINKA IР RMK___

в слове detal..s предпоследняя буква у меня отображается как русская Л. Может истина то все-таки в винде?
30 мар 06, 15:02    [2507100]     Ответить | Цитировать Сообщить модератору
 Re: Как отобразить буквы в восточноеевропейской кодировке  [new]
Glory
Member

Откуда:
Сообщений: 104760
jsq
А кто нибудь может прочеть то что между символами подчеркивания правильно на своем экране:
___DETALЛS TINKA IР RMK___

в слове detal..s предпоследняя буква у меня отображается как русская Л. Может истина то все-таки в винде?

Если дадите доступ к вашему sql то можно попробовать
30 мар 06, 15:04    [2507114]     Ответить | Цитировать Сообщить модератору
 Re: Как отобразить буквы в восточноеевропейской кодировке  [new]
jsq
Member

Откуда: Россия
Сообщений: 81
BrokenPot
В том шрифте, которым вы отображаете, есть литовские буквы? Каким кодам они там соответствуют?

Горячо! Скопировал в буфер - вставил в текстовый редактор перешел в HEX MODE - буква Л имеет код "CB" - и самое интересное - текстовый то редактор, @, в этом режиме в панели просмотра отобразил литовскую букву во всей ее красе - оказалась как русская Ё. В то же время в нормальном не HEX режиме этот же редактор честно отображает русскую Л.

Нужен последний штрих - точный диагноз. Доктор!
30 мар 06, 15:15    [2507173]     Ответить | Цитировать Сообщить модератору
 Re: Как отобразить буквы в восточноеевропейской кодировке  [new]
jsq
Member

Откуда: Россия
Сообщений: 81
Glory
Если дадите доступ к вашему sql то можно попробовать

Я бы рад, но понимаете, мы сами не местные :)
30 мар 06, 15:19    [2507196]     Ответить | Цитировать Сообщить модератору
 Re: Как отобразить буквы в восточноеевропейской кодировке  [new]
jsq
Member

Откуда: Россия
Сообщений: 81
Увы, выходит вообще не могу ни в одной программе нормально литовский текст почитать. Дело в настройках винды стало быть.
30 мар 06, 15:40    [2507356]     Ответить | Цитировать Сообщить модератору
 Re: Как отобразить буквы в восточноеевропейской кодировке  [new]
убийца крокозябр
Guest
jsq
Увы, выходит вообще не могу ни в одной программе нормально литовский текст почитать. Дело в настройках винды стало быть.


дело в юникодной поддержке, а точнее - в ее отсутствии... в XP в региональных настройках можно выставить язык для программ, не поддерживаюших юникод. Вот тогда и увидишь свои литовские буквы во всей красе. Но тогда будут крокозябры в русских программах.
30 мар 06, 15:44    [2507379]     Ответить | Цитировать Сообщить модератору
 Re: Как отобразить буквы в восточноеевропейской кодировке  [new]
Timon
Member

Откуда: Dushanbe TJK
Сообщений: 2688
jsq
В БД (SQL2k) хранятся строки на литовском языке - все в полях varchar.....

Не уверен но,
Попробуйте сделать поле NVARCHAR и вставить новую запись в строку на литовским а затем прочитать её.
30 мар 06, 15:45    [2507385]     Ответить | Цитировать Сообщить модератору
 Re: Как отобразить буквы в восточноеевропейской кодировке  [new]
saint
Member

Откуда: Архангельск
Сообщений: 2262
Вот это может помочь:
Смените COLLATION существующей базы на SQL_Lithuanian_Cp1257_CI_AS. (это скорее всего не получится)
либо
Создайте новую БД с COLLATION SQL_Lithuanian_Cp1257_CI_AS

Теперь выполните из БД с литовским колейшеном:

select cast(cast(mycolumn as varbinary(255)) as varchar(255)) COLLATE SQL_Lithuanian_Cp1257_CI_AS  from mydb.dbo.mytable
здесь mydb.dbo.mytable - это ваша таблица, mycolumn - столбец, 255 - нужно увеличить до размера столбца
30 мар 06, 15:51    [2507420]     Ответить | Цитировать Сообщить модератору
 Re: Как отобразить буквы в восточноеевропейской кодировке  [new]
jsq
Member

Откуда: Россия
Сообщений: 81
убийца крокозябр
дело в юникодной поддержке, а точнее - в ее отсутствии... в XP в региональных настройках можно выставить язык для программ, не поддерживаюших юникод. Вот тогда и увидишь свои литовские буквы во всей красе. Но тогда будут крокозябры в русских программах.

Только что проделал: принес в жертву русский язык. Не помогает. Даже хуже стало. Теперь, когда копирую из QA строку через буфер обмена в текстовый редактор там срузу уже идут знаки ? - то есть информация полностью теперь теряется.
30 мар 06, 15:54    [2507438]     Ответить | Цитировать Сообщить модератору
 Re: Как отобразить буквы в восточноеевропейской кодировке  [new]
saint
Member

Откуда: Архангельск
Сообщений: 2262
почему не получается просто "select mycol COLLATE new_collation" -
прикол в том, что сервер для varchar транслирует коды символов так чтобы они соответствовали символам нового колейшена. есно у него ни фига не выходит и он выдает "вопросы".

cast(cast(mycolumn as varbinary(255)) as varchar(255)) - блокирует трансляцию, однако гадость в том, что при конверте нельзя указать колейшен, а СУБД конвертит к колейшену базы. Для этого и нужно сменить колейшен базы.

А вообще, если у вас интернациональная БД, следует хранить все данные в unicode.
30 мар 06, 15:57    [2507455]     Ответить | Цитировать Сообщить модератору
 Re: Как отобразить буквы в восточноеевропейской кодировке  [new]
jsq
Member

Откуда: Россия
Сообщений: 81
saint
Вот это может помочь:
Создайте новую БД с COLLATION SQL_Lithuanian_Cp1257_CI_AS

попробую, хотя, должен признаться, что 95% текста в текущей БД - на русском.
30 мар 06, 15:58    [2507461]     Ответить | Цитировать Сообщить модератору
 Re: Как отобразить буквы в восточноеевропейской кодировке  [new]
Timon
Member

Откуда: Dushanbe TJK
Сообщений: 2688
Ну попробуйте с NVARCHAR.
30 мар 06, 16:00    [2507476]     Ответить | Цитировать Сообщить модератору
 Re: Как отобразить буквы в восточноеевропейской кодировке  [new]
jsq
Member

Откуда: Россия
Сообщений: 81
saint
А вообще, если у вас интернациональная БД, следует хранить все данные в unicode.

То есть, следует такие таблицы сначала перегнать в базу с другим коллэйшн, там сделать из них юникод и затем поместить в старую базу уже как столбцы юникодовые?
30 мар 06, 16:01    [2507482]     Ответить | Цитировать Сообщить модератору
 Re: Как отобразить буквы в восточноеевропейской кодировке  [new]
Timon
Member

Откуда: Dushanbe TJK
Сообщений: 2688
jsq
saint
А вообще, если у вас интернациональная БД, следует хранить все данные в unicode.

То есть, следует такие таблицы сначала перегнать в базу с другим коллэйшн, там сделать из них юникод и затем поместить в старую базу уже как столбцы юникодовые?

Коллайшн тут немного не причем, для юникода символы кодируются в 4 байта, а не юникоды в 2-а байта, придется заново вводить юникодовые данные.
30 мар 06, 16:08    [2507530]     Ответить | Цитировать Сообщить модератору
 Re: Как отобразить буквы в восточноеевропейской кодировке  [new]
saint
Member

Откуда: Архангельск
Сообщений: 2262
только столбцы с данными на литовском. (это необходимо для интерпретации текста как литовского без транслитерации. Если просто преобразовать столбец в unicode, СУБД вставит текст как русский).
Если русский и литовский текст смешаны, придется экспортировать только литовские значения (через фильтрацию), затем преобразовать в unicode столбец в исходной БД, а затем обновить литовские значения из вспомогательной БД.
30 мар 06, 16:09    [2507539]     Ответить | Цитировать Сообщить модератору
 Re: Как отобразить буквы в восточноеевропейской кодировке  [new]
saint
Member

Откуда: Архангельск
Сообщений: 2262
to Timon: не понял вашу мысль.

При всем уважении, где вы видели 32-битный юникод?
30 мар 06, 16:12    [2507551]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить