<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/css" href="http://1gb.ua/wiki/skins/common/feed.css?63"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://1gb.ua/wiki/index.php?action=history&amp;feed=atom&amp;title=%D0%A0%D0%B0%D0%B1%D0%BE%D1%82%D0%B0_%D1%81_%D0%BA%D0%BE%D0%B4%D0%B8%D1%80%D0%BE%D0%B2%D0%BA%D0%B0%D0%BC%D0%B8_%D0%B2_mySQL</id>
		<title>Работа с кодировками в mySQL - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://1gb.ua/wiki/index.php?action=history&amp;feed=atom&amp;title=%D0%A0%D0%B0%D0%B1%D0%BE%D1%82%D0%B0_%D1%81_%D0%BA%D0%BE%D0%B4%D0%B8%D1%80%D0%BE%D0%B2%D0%BA%D0%B0%D0%BC%D0%B8_%D0%B2_mySQL"/>
		<link rel="alternate" type="text/html" href="http://1gb.ua/wiki/index.php?title=%D0%A0%D0%B0%D0%B1%D0%BE%D1%82%D0%B0_%D1%81_%D0%BA%D0%BE%D0%B4%D0%B8%D1%80%D0%BE%D0%B2%D0%BA%D0%B0%D0%BC%D0%B8_%D0%B2_mySQL&amp;action=history"/>
		<updated>2026-05-03T20:04:15Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.10.1</generator>

	<entry>
		<id>http://1gb.ua/wiki/index.php?title=%D0%A0%D0%B0%D0%B1%D0%BE%D1%82%D0%B0_%D1%81_%D0%BA%D0%BE%D0%B4%D0%B8%D1%80%D0%BE%D0%B2%D0%BA%D0%B0%D0%BC%D0%B8_%D0%B2_mySQL&amp;diff=4937&amp;oldid=prev</id>
		<title>NovaCxarmulo: /* Работа с правильной кодировкой (CP-1251) */</title>
		<link rel="alternate" type="text/html" href="http://1gb.ua/wiki/index.php?title=%D0%A0%D0%B0%D0%B1%D0%BE%D1%82%D0%B0_%D1%81_%D0%BA%D0%BE%D0%B4%D0%B8%D1%80%D0%BE%D0%B2%D0%BA%D0%B0%D0%BC%D0%B8_%D0%B2_mySQL&amp;diff=4937&amp;oldid=prev"/>
				<updated>2010-12-10T06:43:48Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Работа с правильной кодировкой (CP-1251)&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая статья&lt;/b&gt;&lt;/p&gt;&lt;div&gt;'''Важно: для новых баз данных'''&lt;br /&gt;
Создание баз данных происходит с кодировкой по умолчанию CP1251 / CP1251_general_ci. Сайты на PHP 5, созданные после 8 марта 2007 года, работают с этой кодировкой без дополнительной настройки. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Дальнейшая информация в статье имеет отношение к более старым сайтам нашего хостинга, а также к другим mySQL клиентам, с которыми вы можете встретиться на нашем хостинге или в собственных приложениях.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Для баз существующих клиентов (до марта 2007 года) или сайтов на PHP 4&lt;br /&gt;
Кодировка базы данных (charset, collation) устанавливает режим работы с текстовой информацией в базе. Кодировка задается двумя параметрами: charset - набор кодов символов, рассматриваемых как текст, и collation - правило работы с этими символами (правила сортировки, сравнения, перевода регистров).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
В mySQL 4 появилась возможность самостоятельно задавать кодировки для таблиц и даже для отдельных полей таблиц.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
К сожалению, работа с разными кодировками в mySQL 4 и mySQL 5 сделана не вполне удачно. Мы можем предложить два способа работы.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Работа с кодировкой по умолчанию ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
По умолчанию на нашем хостинге установлен charset - latin1, collation - latin1_binary. Сравнение русских букв производится по их коду по номеру. Это позволяет делать следующее:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Главное: Этот режим совместим со всем ПО - старыми и новыми клиентами, mySQL Front, PHP клиентами, ODBC, и т.д., т.е. достигается максимальная совместимость со всем тем, что работало с mySQL 3х версий. &lt;br /&gt;
Хранение русских символов во всех режимах осуществляется правильно. &lt;br /&gt;
Сортировка русских символов осуществляется правильно, кроме буквы Ё (к сожалению). &lt;br /&gt;
К сожалению, регистро-независимое сравнение и преобразование регистров для русского алфавита в данном режиме не работает. Помните, это может привести к неправильной работе приложений, которые на это рассчитаны!&lt;br /&gt;
Для того, чтобы воспользоваться этим режимом, вам не нужно вносить никаких изменений в код - просто создавайте базу и работайте как обычно.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Этот способ вполне подойдет людям, которым достаточно описанной функциональности, или в том случае, если решить проблемы, вызванные &amp;quot;корректной&amp;quot; работой с кодировкой, не удается.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Работа с правильной кодировкой (CP-1251) ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Для работы с правильной кодировкой вам нужно с помощью средства управления базой, совместимого с mySQL 4, поменять кодировку таблиц. Удобнее это делать сразу после создания таблицы, чтобы поля унаследовали эту кодировку автоматом.&lt;br /&gt;
Внимание: не забывайте, что поменять кодировку таблицы после создания там полей недостаточно, убедитесь, что поля тоже имеют правильную кодировку!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Средства управления можно скачать с сайта www.mysql.com, например, mySQL Administrator.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Главное''': Этот режим не до конца совместим с ПО, рассчитанным на работу с mySQL 3, таким, как mySQL Front и т.п., также не всегда получается нормально работать с клиентами - PHP, ODBC, и т.д. Если вместо русских букв вы видите знаки '?' - вы попали именно в такую ситуацию.&lt;br /&gt;
Большинство вопросов можно решить, воспользовавшись русскоязычными ресурсами по программированию, например, http://www.mysql.ru/.&lt;br /&gt;
Обычно достаточно следовать короткому совету (см. примечание 1). &lt;br /&gt;
Хранение и обработка русских символов во всех режимах осуществляется правильно.&lt;br /&gt;
Внимание: практика показывает, что изменять charset и collation на таблице, которая уже имеет данные, бесполезно - вы получите '?' вместо русских символов.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Примечание 1''': Обычно для правильной работы с кодировкой CP1251 достаточно дать следующие команды после соединения с базой (это PHP код):&lt;br /&gt;
&lt;br /&gt;
 mysql_query (&amp;quot;set character_set_client='cp1251'&amp;quot;);&lt;br /&gt;
 mysql_query (&amp;quot;set character_set_results='cp1251'&amp;quot;);&lt;br /&gt;
 mysql_query (&amp;quot;set collation_connection='cp1251_general_ci'&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Примечание 2''': Для ODBC драйвера для mySQL к строке подключения необходимо дописать следующий параметр:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
stmt=SET NAMES 'cp1251'&lt;br /&gt;
&lt;br /&gt;
== MySQL .NET Connector ==&lt;br /&gt;
В качестве строки подключения надо указывать строку вида: &lt;br /&gt;
&lt;br /&gt;
 Server=&amp;lt;server&amp;gt;;Database=&amp;lt;database&amp;gt;;User=&amp;lt;user&amp;gt;;Password=&amp;lt;password&amp;gt;;CharSet=utf8&lt;br /&gt;
&lt;br /&gt;
Примечание: кодировку utf8 нужно указывать даже в том случае, если кодировка таблицы стоит 1251.&lt;br /&gt;
&lt;br /&gt;
== Дополнительная информация ==&lt;br /&gt;
&lt;br /&gt;
К сожалению, служба поддержки не может оказывать помощь по решению проблем кодировок mySQL 4/5. Количество средств программирования и способов использования базы слишком велико, чтобы описать каждый случай.&lt;br /&gt;
&lt;br /&gt;
Практика показывает, что использование условно-правильного совместимого режима (latin1/latin1_binary), которое происходит по умолчанию, решает основную проблему работы с кодировкой (сортировку), и предоставляет хороший уровень обратной совместимости.&lt;br /&gt;
&lt;br /&gt;
В случае продолжающихся проблем мы можем также рекомендовать вам пользоваться базой mySQL 3.*, для которой на нашем хостинге установлена традиционная кодировка cp1251 (Windows). Однако помните, что в этом случае вам придется работать с текстами в кодировке cp1251.&lt;br /&gt;
&lt;br /&gt;
[[Категория:MySQL]]&lt;/div&gt;</summary>
		<author><name>NovaCxarmulo</name></author>	</entry>

	</feed>