Восстановление данных с HDDВосстановление данных с HDD
Восстановление данных с RAID массива (Raid 0, Raid 5)Восстановление данных с RAID массива (Raid 0, Raid 5)
Восстановление данных с переносных (внешних) жестких дисковВосстановление данных с переносных (внешних) жестких дисков
Восстановление данных при неисправных магнитных головкахВосстановление данных при неисправных магнитных головках
Восстановление данных при поврежденной логической структуреВосстановление данных при поврежденной логической структуре
Восстановление данных при неисправном контроллере HDDВосстановление данных при неисправном контроллере HDD
Восстановление информации с повреждённых разделовВосстановление информации с повреждённых разделов
Восстановление информации при нарушениях в работе ПЗУВосстановление информации при нарушениях в работе ПЗУ или служебной зоне
Восстановление данных с жеских дисков после форматированияВосстановление данных с жеских дисков после форматирования
 
Восстановление данных с USB Flash DriveВосстановление данных с USB Flash Drive
Восстановление данных с карт памятиВосстановление данных с карт памяти
Восстановление данных с флеш накопителейВосстановление данных с флеш накопителей при поврежденном трансляторе
Восстановление данных с флешекВосстановление данных с флешек при логическом сбое
Восстановление данных с USB FlashВосстановление данных с USB Flash при механических повреждениях
Восстановление данных с флеш после форматированияВосстановление данных с флеш после форматирования
Восстановление данных с SDВосстановление данных с SD (Secure Digital), xD, CF (Compact Flash), miniSD, microSD и других
Восстановление данных с  переносных накопителей USBВосстановление данных с переносных накопителей USB
 
Телефон: 8 (906) 760-3251
+7 (495) 642-2875

E-Mail: dioxid2000@gmail.com

Адрес: г.Москва, Сущевский вал, д.5, стр.20, павильон "N6" на балконе

и соседнее здание (Сущевский вал, д.5, стр.1) павильон "С-38" (только прием заказов)

Время работы: павильона "С-38" с 10:30 до 19:30 (без выходных)
Время работы: павильона "N-6" с 12:30 до 19:30 (выходной воскресенье)

ICQ: 461-827-389

Карта проезда
 
   
  Всего на сайте: 7

Гостей: 5

Пользователи: - отсутствуют

Роботы: Google Bot, crawl Bot
 
  Программы - Софт
 
   
 
«    Май 2012    »
ПнВтСрЧтПтСбВс
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
 
 
Работа MySQL со строками
 

Начиная с версии 4.0, сервер MySQL поддерживает преобразование кодировок символов. Эта статья рассказывает о том, что такое кодировки, сопоставления и о том, как работать с ними применительно к серверу MySQL.

Русскоязычные кодировки

Традиционно в России использовались четыре кодировки для представления русских символов:

  • CP866 (DOS)
  • KOI8-R
  • MacCyrillic
  • CP1251 (Windows)

Эти четыре кодировки имеют как общие черты, так и различия. Во-первых, все они используют один байт информации для хранения одного символа. Во-вторых, они совместимы с кодировкой latin1, т.е. у них совпадают первые 128 байт таблицы кодировки. Различаются же значения символов с установленным верхним битом (т.е. со значениями 128-255).

Даже четыре кодировки символов для одного языка — это очень много. Изначально люди не придавали этому значения, но в последние несколько лет это стало не так. Возникли разнообразные проблемы переносимости программ, и люди решили создать обобщающие кодировки, содержащие символы всех языков мира (в том числе, разумеется, и русского).

Так была создана кодировка Unicode (UCS-2). Разумеется, невозможно разместить очень большое количество символов в 8 битах, поэтому в этой кодировке используются 2 байта (т.е. 16 бит) на каждый символ. Строки в этой кодировке, безусловно, занимают больше места, чем в старых кодировках, но зато приложения, использующие такие строки, очень легко переносятся на другие языки.

Не смотря на введение UCS-2, некоторые проблемы все-же остались. Во-первых, это уже указанное увеличение длины строки. Люди, использующие только латинские символы, не могли для себя понять, почему они должны использовать 16 бит для обозначения символов, которые уместятся в 7 бит. Во-вторых, 65536 символов все равно не хватает для обозначения всех используемых символов на планете.

Для преодоления этих трудностей, была создана кодировка с переменной длиной символа UTF-8. В этой кодировке используется 1 байт для обозначения первых 128 символов (т.е. символов, входящих в latin1). Если установлен верхний бит первого байта, то используется второй байт (т.е. русские буквы в этой кодировке занимают 2 байта). Если установлен верхний бит второго байта, то используется третий байт (и туда входят разнообразные иероглифы и другие восточные символы) и так далее.

Такая кодировка во-первых, может разместить в себе произвольное количество символов (т.к. она позволяет увеличивать количество байт динамическим образом). Во-вторых, для английского языка используется 1 байт, и это очень приятно для англоговорящих стран. Восточные страны не очень любят эту кодировку, т.к. им приходится использовать 3 байта для обозначения своих символов (в UCS-2 они используют только два).

Сопоставления символов

Некоторые приложения (включая и MySQL, о котором речь пойдет далее) используют не только кодировки, но и сопоставления символов. Дело в том, что некоторые символы некоторые языки считают одинаковыми (а иногда считаются одинаковыми символ или последовательность символов). Например, «ü» в немецком языке может быть записан как «ue». С другой стороны, в шведском языке тот же символ может быть записан как «uy».

В русском языке можно, например, считать одинаковыми буквы «е» и «ё» (как часто делают в официальных документах). Также часто бывает полезным не различать большие и маленькие буквы (которые имеют разный код в любой кодировке).

Сопоставление влияет именно на то, как приложение работает с совокупностью символов, оно влияет на порядок сортировки и на сравнение символов. Разумеется, сопоставление зависит от кодировки символов.

Кодировки символов в MySQL

В сервере MySQL у каждой строки есть своя кодировка и сопоставление. При создании таблицы, Вы можете указать кодировку и сопоставление, в которых будут сохранены строки внутри таблицы. Вы можете даже указывать эти параметры для каждого поля таблицы. Например:

       CREATE TABLE enctest (<br />
            str1 CHAR(10) CHARSET koi8r,<br />
            str2 CHAR(15) COLLATE utf8_general_ci<br />
        );
       

В данном примере создается таблица с двумя полями, одно из которых будет храниться в кодировке KOI8-R (и с сопоставлением по-умолчанию). Второе поле будет иметь сопоставление utf8_general_ci и кодировку UTF-8 (кодировка определяется по сопоставлению, т.к. сопоставление зависит от нее).

Список доступных кодировок и сопоставлений Вы можете получить, соответственно, командами

       SHOW CHARACTER SET;<br />
        SHOW COLLATION;
       

Кодировки по умолчанию и смена кодировки строк в MySQL

Если Вы не хотите явно указывать кодировку строк в таблице, Вы можете для этой таблицы указать кодировку символов по-умолчанию:

       CREATE TABLE enctest2 (<br />
            str1 CHAR(10),<br />
            str2 CHAR(15)<br />
        ) DEFAULT CHARSET cp1251;
       

В данном случае, обе строки будут созданы в кодировке CP1251. Вы можете указывать кодировки отдельных строк и в случае указания кодировки по-умолчанию.

Вы также можете изменить кодировку символов для конкретного поля таблицы:

       ALTER TABLE enctest2 MODIFY str1 CHAR(10) CHARSET utf8;
       

В данном случае, в поле str1 изменяется кодировка и все строки перекодируются. Учтите, что если Вы изменяете кодировку по-умолчанию для таблицы, то строки в ней не перекодируются, Вы просто влияете на создание других полей в этой таблице.

Сопоставления в MySQL

В MySQL для каждой кодировки есть по крайней мере одно сопоставление (а обычно, несколько). Для того, чтобы понять, чем они отличаются, они все имеют очень подробные названия.

Название каждого сопоставления начинается с названия соответствующей кодировки (например, utf8_). Далее идет спецификация сопоставления (чаще всего, идет простое сопоставление, general, не идентифицирующее буквы) и указание на чувствительность к регистру (cs — case sensitive — чувствительно к регистру, ci — case insensitive — не чувствительно).

Отдельно стоит отметить бинарные сопоставления (binary). Если строки сопоставляются бинарным образом, то между ними не делается никаких сопоставлений и преобразований. Такие строки не будут преобразованы командой SET NAMES (см. далее). Бинарные сопоставления особенно удобно использовать при переходе с MySQL 3.23, который не поддерживал кодировки и который указывает, что все таблицы находятся в кодировке latin1 (не смотря на то, что таблицы могут содержать данные, скажем, в KOI8-R).

Клиентские кодировки MySQL

Сервер MySQL автоматически изменяет кодировку строк при занесении данных в таблицу и при выборке данных из таблицы. При этом он использует данные из системных переменных, таких, как character_set_client. Список всех переменных, влияющих на кодировки, Вы можете получить, выполнив команду

       SHOW VARIABLES LIKE 'char%';
       

Вы можете указывать или переменные по-одиночке, или изменять их сразу большим набором (как требуется в большинстве случаев):

       SET NAMES koi8r;
       

После того, как сервер получит такую команду, он будет ожидать, что Вы будете передавать ему все строки в кодировке KOI8-R и будет автоматически переводить выводимые им строки в эту кодировку.

Это удобно тогда, когда сервер по-умолчанию работает не в той кодировке, которую Вы ожидаете (например, в KOI8-R, а Вы хотите выводить информацию на сайте в CP1251).

Хранение информации в MySQL

MySQL хранит информацию в соответствии с тем, какую кодировку вы указали. Так сервер выделяет по 1 байту на каждый символ для однобайтовых кодировок (при этом CHAR(10) занимает всегда 10 байт, VARCHAR(10) занимает от 1 до 11 байт в зависимости от длины строки, 1 лишний байт тратится на хранение длины строки).

Для кодировки UCS-2 сервер выделяет по 2 байта на каждый символ. Для кодировки UTF-8 сервер выделяет разное количество байт для разных символов (в соответствии с кодировкой) в случае VARCHAR и 3 байта на каждый символ в случае CHAR. Таким образом, в UTF-8 строка CHAR(10) всегда занимает 30 байт, а VARCHAR(10) — от 1 до 31 байта.При этом ни в каком случае при применении UTF-8 сервер не может хранить символы длиной от 4 байт (впрочем, это не накладывает особых ограничений).

 

Другие нововсти по теме:
    {related-news}



 
Так же выполняем следующие виды работ:
  • восстановление удалённых файлов, разделов;
  • восстановление данных с жесткого диска после форматирования;
  • восстановление данных с разделов fat16, fat32, ntfs, ext2, ext3, hfs и др.;
  • восстановление информации с повреждённых разделов с Raid, HDD, Flash, ZIV.
  • восстановление usb flash, flash drive;
  • ремонт usb flash после механического воздействия (удар, падение);
  • ремонт флэш и восстановление флэш;
  • восстановление данных с usb flash и восстановление информации с USB Flash;
  • восстановление информации с RAID массивов, RAID 0, RAID 5;
  • восстановление файлов с usb flash после механического воздействия (удар, падение), при неисправности USB контроллера карты;
  • восстановление данных ziv drive после форматирования диска;
  • Восстановление информации с USB Flash Drive PC Card TypeI/II/III, CompactFlash Card (CF) Type I/II, Ultra CompactFlash (ultra CF) Type I/II, SmartMedia (SM); xD Picture Card, MultiMedia Card (MMC), Secure Digital Card (SD), Memory Stick (MS), IBM Microdrive (MD).
 
 (голосов: 0)
Восстановление данных после форматирования или удаления данных
Восстановление данных после форматирования или удаления данныхБольшинство пользователей ошибочно пол...

Читать далее

   ATLAS 3D World Data 19.08.2010
Лучший Атлас мира, где наша Вселенная показывается с точностью до 1 sm. Применяемый во всем мире лег...

Читать далее

   Auslogics BoostSpeed 5.0.3.210 Portable
Представляем пятую версию программы BoostSpeed. Программа включает в себя более 18 утилит для оптим...

Читать далее

   Настройка Рабочего стола, Мой компьютер и Мои документы.
Настройка Рабочего стола, Мой компьютер и Мои документы. Для удобства пользования используется сле...

Читать далее

 
 
 
Логин
Пароль
 
 
 
Auslogics BoostSpeed 5.0.4.220 Portable

Представляем пятую версию программы BoostSpeed. Программа включает в себя более 18 утилит для оптим...

Читать далее

 
 
Rambler's Top100 Проверить PR и ТИЦ Яндекс.Метрика
 
 
Декабрь 2010 (5)
Ноябрь 2010 (1)
Сентябрь 2010 (10)
Август 2010 (48)
Июль 2010 (7)
Июнь 2010 (48)
 
  Информация о заказах

 
  barracuda, Download Master, Olympus, Portable, raid, raid массив, raid0, raid5, seagate, seagate 7200, seagate barracuda 7200.11, usb flash, Автоматическая выгрузка DLL, БМГ, внешний, восстановление, восстановление windows, Восстановление данных, Восстановление реестра, данные, диск, контроллер, магнитные головки, нарушение ПЗУ, определяется, переносной, ПЗУ, плата контроллера, плата электроники, производительность при загрузке, пропали, Регистрационные данные, реестр, сайта, служебная информация, Сообщение при загрузке, упал, флешка, форматирование, Часы

Показать все теги
 
  Автошкола предлагает, курсы вождения - Хорошие инструктора. | Советуем бронестекло выгодно. | Продажа квартир в Южно-Сухокумске на сайте Сландо
  »Восстановление данных с Seagate Barracuda 7200.11
»Восстановление файлов с флешки
»Системный реестр Windows
»Операционная система Windows Vista
»Лечим вирусы и баги.
»Windowxs 7