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

Откуда:
Сообщений: 17
Заполняю табличку со списком языков вот так:
IF Not Exists (Select * from Languages Where Name='Arabic')INSERT INTO Languages(LanguageId,Name) select NEWID(),'Arabic'
IF Not Exists (Select * from Languages Where Name='Bahasa Indonesia')INSERT INTO Languages(LanguageId,Name) select NEWID(),'Bahasa Indonesia'
IF Not Exists (Select * from Languages Where Name='Bahasa Malaysia')INSERT INTO Languages(LanguageId,Name) select NEWID(),'Bahasa Malaysia'
IF Not Exists (Select * from Languages Where Name='Bengali')INSERT INTO Languages(LanguageId,Name) select NEWID(),'Bengali'
IF Not Exists (Select * from Languages Where Name='Dansk')INSERT INTO Languages(LanguageId,Name) select NEWID(),'Dansk'
IF Not Exists (Select * from Languages Where Name='Deutsch')INSERT INTO Languages(LanguageId,Name) select NEWID(),'Deutsch'
IF Not Exists (Select * from Languages Where Name='English')INSERT INTO Languages(LanguageId,Name) select NEWID(),'English'
IF Not Exists (Select * from Languages Where Name='Español')INSERT INTO Languages(LanguageId,Name) select NEWID(),'Español'
IF Not Exists (Select * from Languages Where Name='Français')INSERT INTO Languages(LanguageId,Name) select NEWID(),'Français'
IF Not Exists (Select * from Languages Where Name='Hebrew')INSERT INTO Languages(LanguageId,Name) select NEWID(),'Hebrew'
IF Not Exists (Select * from Languages Where Name='Hindi')INSERT INTO Languages(LanguageId,Name) select NEWID(),'Hindi'
IF Not Exists (Select * from Languages Where Name='Italiano')INSERT INTO Languages(LanguageId,Name) select NEWID(),'Italiano'
IF Not Exists (Select * from Languages Where Name='Magyar')INSERT INTO Languages(LanguageId,Name) select NEWID(),'Magyar'
IF Not Exists (Select * from Languages Where Name='Nederlands')INSERT INTO Languages(LanguageId,Name) select NEWID(),'Nederlands'
IF Not Exists (Select * from Languages Where Name='Norsk')INSERT INTO Languages(LanguageId,Name) select NEWID(),'Norsk'
IF Not Exists (Select * from Languages Where Name='Polski')INSERT INTO Languages(LanguageId,Name) select NEWID(),'Polski'
IF Not Exists (Select * from Languages Where Name='Português')INSERT INTO Languages(LanguageId,Name) select NEWID(),'Português'
IF Not Exists (Select * from Languages Where Name='Punjabi')INSERT INTO Languages(LanguageId,Name) select NEWID(),'Punjabi'
IF Not Exists (Select * from Languages Where Name='Sign Language')INSERT INTO Languages(LanguageId,Name) select NEWID(),'Sign Language'
IF Not Exists (Select * from Languages Where Name='Suomi')INSERT INTO Languages(LanguageId,Name) select NEWID(),'Suomi'
IF Not Exists (Select * from Languages Where Name='Svenska')INSERT INTO Languages(LanguageId,Name) select NEWID(),'Svenska'
IF Not Exists (Select * from Languages Where Name='Tagalog')INSERT INTO Languages(LanguageId,Name) select NEWID(),'Tagalog'
IF Not Exists (Select * from Languages Where Name='Türkçe')INSERT INTO Languages(LanguageId,Name) select NEWID(),'Türkçe'
IF Not Exists (Select * from Languages Where Name='Čeština')INSERT INTO Languages(LanguageId,Name) select NEWID(),'Čeština'
IF Not Exists (Select * from Languages Where Name='Ελληνικά')INSERT INTO Languages(LanguageId,Name) select NEWID(),'Ελληνικά'
IF Not Exists (Select * from Languages Where Name='Русский')INSERT INTO Languages(LanguageId,Name) select NEWID(),'Русский'
IF Not Exists (Select * from Languages Where Name='українська')INSERT INTO Languages(LanguageId,Name) select NEWID(),'українська'
IF Not Exists (Select * from Languages Where Name='ภาษาไทย')INSERT INTO Languages(LanguageId,Name) select NEWID(),'ภาษาไทย'
IF Not Exists (Select * from Languages Where Name='中文')INSERT INTO Languages(LanguageId,Name) select NEWID(),'中文'
IF Not Exists (Select * from Languages Where Name='日本語')INSERT INTO Languages(LanguageId,Name) select NEWID(),'日本語'
IF Not Exists (Select * from Languages Where Name='한국어')INSERT INTO Languages(LanguageId,Name) select NEWID(),'한국어'

Тип Languages.Name -nvarchar(100) NOT NULL
так вот в столбцах
LanguageIdName
928BB411-A310-4289-9739-02981164CFCAArabic
8B5550D7-B07D-44D9-9B61-0441BA134460Tagalog
BD6FA862-B26A-4599-A12F-169F275D71DCBahasa Malaysia
028B7371-19EE-4C09-B27A-1FB319829F56Polski
11B682C9-2DF5-4689-8F96-2A1C2F348219Bengali
9B25039B-3F08-4703-9D89-3D055993DD02???????
94BE12E1-AA1A-4EE4-9159-4A1EAF869D93Русский
2883967D-F088-4E79-9BB6-519EE277519F????????
45822CF7-D135-448A-9BE5-5AE83BFE0341Sign Language
F1826C31-0EFC-4F41-B20B-6854013FE0FBNederlands
7C5CEC12-134E-41FF-8098-783DA9E4BF17Magyar
7CDA76D0-6D17-4BBB-BA1B-7A7E859ED0D5Punjabi
70C0B888-1166-44B2-A1F4-905B48008847Hindi
BD12ADA2-786C-4A99-B11F-944EAC7589E2українська
420E9180-7443-422B-ABA4-957B0C082EF9Italiano
825D67AB-D2ED-47E4-8735-9E2C3EAD3BCBHebrew
43F7AFAA-D8DB-4738-BDF2-A3DF99559BF6??
C3C232C8-0AEC-45F2-8F58-A572E2BEDC6FCestina
348B5887-BB23-4612-A18D-A7DC0D42F45FBahasa Indonesia
8D43C1FE-49DE-4A28-92B9-B41F3521EC4DDeutsch
10D942AC-9E75-4720-BF59-B6FC36ED618DSvenska
D4C8A250-A9B3-4909-B9C6-C158D6C220B5Suomi
8D346D71-2BBA-495B-A728-D84D687EF37DEspanol
ED8E9E32-4D90-4685-A489-DE65F6D87B83Dansk
0522E965-08ED-491C-9426-E6518A5CA759Turkce
1005D4C6-A4E7-4144-8EF1-E777F4CDE18D???
C6B9D825-F4AD-4CCD-AE21-EC03702032FFFrancais
8AE2F80F-FB6A-4B1F-9DAE-EC6FDA35D438Portugues
B5839C05-E85B-43C6-BA28-F73649428AAAEnglish
A25D4122-1806-4C6A-8166-F9DCE2D4BDB2Norsk

на месте иероглифов - знаки вопроса...Более того при вытравливании этих данных в уже приложение (в web) там тоже - вот эти замечательные значки вопроса. а мне нужны иероглифы
5 июл 12, 14:27    [12822366]     Ответить | Цитировать Сообщить модератору
 Re: Строки содержащие иероглифы как сохранить в базе, и как их оттуда потом вытравить  [new]
Shm
Member

Откуда:
Сообщений: 17
Упс здесь тоже иероглифы заменились у меня это выглядит так:Картинка с другого сайта.
5 июл 12, 14:32    [12822420]     Ответить | Цитировать Сообщить модератору
 Re: Строки содержащие иероглифы как сохранить в базе, и как их оттуда потом вытравить  [new]
miksoft
Member

Откуда:
Сообщений: 38496
Shm,

ну так а что у вас там с кодировками? в базе, в табличке, в сессии и т.д.?
И, кстати, у вас точно MySQL?
5 июл 12, 15:04    [12822716]     Ответить | Цитировать Сообщить модератору
 Re: Строки содержащие иероглифы как сохранить в базе, и как их оттуда потом вытравить  [new]
Shm
Member

Откуда:
Сообщений: 17
Упс , да не MySql /// Microsoft SQL :( наверно я не в тот фоорум стучусь... Я этих зверей путаю ... оба на букву М начинаются.
Кодировки... Спасибо, я подумаю что у меня с кодировками действительно.. Знать бы где это ещё смотреть и как задавать ... Может поступлю проще, просто эти языки напишу английскими буквами, но просто хотелось разобраться. С этими кодировками раз и навсегда.

Модератор: Тема перенесена из форума "MySQL".


Сообщение было отредактировано: 5 июл 12, 15:46
5 июл 12, 15:40    [12823058]     Ответить | Цитировать Сообщить модератору
 Re: Строки содержащие иероглифы как сохранить в базе, и как их оттуда потом вытравить  [new]
Glory
Member

Откуда:
Сообщений: 104760
Shm
Может поступлю проще, просто эти языки напишу английскими буквами, но просто хотелось разобраться.

Откройте для себя Unicode и делайте многоязычные поля типом nvarchar/nchar
5 июл 12, 15:49    [12823141]     Ответить | Цитировать Сообщить модератору
 Re: Строки содержащие иероглифы как сохранить в базе, и как их оттуда потом вытравить  [new]
Shm
Member

Откуда:
Сообщений: 17
Я даже не понимаю на каком этапе сломалась кодировка
1) на этапе редактора - редактор перед выполнением скрипта вместо Картинка с другого сайта. закодировал не распозноваемо эти символы перед выполнением скрипта
2) на этапе сохранения - данные сохранились в бд не в том формате (не в той последовательности байты например, или не тот размер отведённый под один символ )
3) на этапе вывода я ошибаюсь и неправильно трактую пришедшие данные от сервера...
а вы говорите откройте для себя Unicode
Поле сделал Languages.Name типом nvarchar(100) NOT NULL
5 июл 12, 16:01    [12823235]     Ответить | Цитировать Сообщить модератору
 Re: Строки содержащие иероглифы как сохранить в базе, и как их оттуда потом вытравить  [new]
Glory
Member

Откуда:
Сообщений: 104760
Shm
а вы говорите откройте для себя Unicode

Символьная константа в Unicode начинается с префикса N.
5 июл 12, 16:04    [12823254]     Ответить | Цитировать Сообщить модератору
 Re: Строки содержащие иероглифы как сохранить в базе, и как их оттуда потом вытравить  [new]
Shm
Member

Откуда:
Сообщений: 17
О! спасибо, заработало вроде :)
Я понял всё сломалось на этапе редактора (препроцессора или компилятора скрипта не знаю как эта штука называется в Microsoft SQL Server Managment Studio )
5 июл 12, 16:17    [12823363]     Ответить | Цитировать Сообщить модератору
 Re: Строки содержащие иероглифы как сохранить в базе, и как их оттуда потом вытравить  [new]
Glory
Member

Откуда:
Сообщений: 104760
Shm
Я понял всё сломалось на этапе редактора (препроцессора или компилятора скрипта не знаю как эта штука называется в Microsoft SQL Server Managment Studio )

Все сломалось, когда вы написали неправильный код.
Компилятор в MSSQL ничего не делает с кодировкой команд.
5 июл 12, 16:20    [12823390]     Ответить | Цитировать Сообщить модератору
 Re: Строки содержащие иероглифы как сохранить в базе, и как их оттуда потом вытравить  [new]
Shm
Member

Откуда:
Сообщений: 17
Я уже не знал где сломалось уже думал и тип String не умеет такие строки хранить и В базе нужен под тип данных другой тип заводить :) Всем кто столкнулся с подобной проблемой гуглить ' Символьная константа в Unicode SQL' в первой ссылке по теме скорее всего ответ на загадку.
5 июл 12, 16:21    [12823407]     Ответить | Цитировать Сообщить модератору
 Re: Строки содержащие иероглифы как сохранить в базе, и как их оттуда потом вытравить  [new]
iap
Member

Откуда: Москва
Сообщений: 47000
Shm
Я уже не знал где сломалось уже думал и тип String не умеет такие строки хранить и В базе нужен под тип данных другой тип заводить :) Всем кто столкнулся с подобной проблемой гуглить ' Символьная константа в Unicode SQL' в первой ссылке по теме скорее всего ответ на загадку.
Зачем гуглить, когда FAQ есть
5 июл 12, 17:19    [12823783]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить