американский хостинг и русские буквы

mixwell

Новичок
пробовал. не помогает:( менял кодировки в set names. только абра-кадабра меняется, но все равно нормальных русских слов так и не появилось. Но в phpmyadmin при просмотре подержимого таблицы отображается нормальные русские символы. еще заметил, что функция mysql_client_encoding() выдает "latin1_de". Мне кажется от сюда ноги растут...

-~{}~ 25.10.07 16:02:

Вот что нового заметил. при занесении в базу новой информации с сайта, то она заностится нормально и отображается нормально(т.е. на русском) А вот информация которая была в дампе базы она отображается на сайте "черте как"
 

baev

‹°°¬•
Команда форума
Вот что нового заметил
— мля, Вы такой наблюдательный...

Вы понимаете, что все тут пытались Вам помочь решить несуществующую проблему?
 

mixwell

Новичок
как это несуществующую. А что делать с данными которые в базе храняться?? Заново забивать. Там не мало инфы. Спасибо всем конечно большое(и вам в том числе)! Но проблема то еще имет место быть.
 

baev

‹°°¬•
Команда форума
Другая проблема!
О которой Вы раньше ни словом не заикнулись: даже неизвестно, в какой кодировке был дамп базы, и как именно Вы его заливали.
 

mixwell

Новичок
baev Ok, вы правы. Мои извенения за отнятое время. Просто сразу сконцентрировался на проблеме.

а кроме http://sypex.net/encoding/ самому ни как нельзя исправить данную ситуацию.

-~{}~ 25.10.07 18:16:

кодировка таблиц в дампе "ENGINE=MyISAM DEFAULT CHARSET=cp1251"
 

vovanium

Новичок
zerkms
ps: дамп в 100метров восстанавливается порядка 2-3 минут, поиск с заменой слова latin1 на cp1251 займёт ещё минуту
Ну так дампер делает тот же поиск с заменой только сам, причем сразу в процессе восстановления, в чем проблемы?
Или ты считаешь что делать поиск и замену вручную на большом дампе это нормально, а когда это сделает сам скрипт автоматом это ужасно? :)
ты и сам знаешь нормальные решения, а предлагаешь какие-то не нужные тулзы
Вообще, я предлагаю свою тулзу ;) В которой как раз из-за многичесленных обращений с проблемами (после того как хостеры переходят с mysql 4 на 4.1, как раз у многих возникает проблема с кодировками). И исправил дампер уже множество проблемных таблиц, в том числе форумов с размером базы более 700 метров.
Pigmeich
Меняется по ALTER TABLE, дампа не надо.
Не говори глупостей, так там не все так просто, если ты сделаешь ALTER TABLE, то в итоге у тебя у таблиц станет кодировка cp1251, а всех текстовых полей по прежнему будет latin1.

-~{}~ 25.10.07 18:46:

mixwell
кроме http://sypex.net/encoding/ самому ни как нельзя исправить данную ситуацию.
Ну если трудоголик, и не хочешь чтобы за тебя работали скрипты, то можно и вручную :)
Если кодировка у всех таблиц в дампе cp1251 и показываются нормально русские буквы, то тогда нужно только? чтобы то чем ты восстанавливаешь дамп выбрало кодировку соединения cp1251. Дампер это делает автоматом. Если та софтина которой ты восстанавливаешь этого делать не умеет, то нужно указать в начале дампа строку SET NAMES...
 

mixwell

Новичок
Если кодировка у всех таблиц в дампе cp1251 и показываются нормально русские буквы, то тогда нужно только? чтобы то чем ты восстанавливаешь дамп выбрало кодировку соединения cp1251. Дампер это делает автоматом. Если та софтина которой ты восстанавливаешь этого делать не умеет, то нужно указать в начале дампа строку SET NAMES...
в дампе все таблицы - cp1251. Русские буквы при просмотре через фар не показываются(тоже карякули какие-то). При восстановлени дампа.выбрал кодировку Кодировка файла - cp1251. В начале Дампа указывал строку SET NAMES.. НЕ ПОМОГАЕТ.

Просто хочется полностью разобраться с этими кодировками.
 

baev

‹°°¬•
Команда форума
кодировка таблиц в дампе "ENGINE=MyISAM DEFAULT CHARSET=cp1251"
в дампе все таблицы - cp1251
— угу.
Блин, у меня на сарае написано слово из трёх букв, а на самом деле там дрова лежат...

Если у Вас «Русские буквы при просмотре через фар не показываются», то и текст в дампе — не в cp1251. Если Вам добиться читаемости текста дампа не удастся (перебором кодировок, использованием программ типа «Штирлиц» и т.д.), то никакие команды SQL Вам не помогут.
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
mixwell
Открываем блокнотом жмём сейв-ас и убеждаемся, что дамп в УТФ8
 

mixwell

Новичок
через блокнот открыл и там нормально читаются русские символы.

-~{}~ 26.10.07 09:24:

но через фар - ни читаются.

-~{}~ 26.10.07 09:41:

вот что попробовал сделать сейчас. На этом же сервере создал новую базу данных. Ничего в ней не менял. Создал тестовую таблицу. добавил в нее запись с русскими словами. и сделал дамп без выставление галочки "послать". и вот что увидел:


-- phpMyAdmin SQL Dump
-- version 2.6.4-pl3
-- http://www.phpmyadmin.net
--
-- Время создания: Окт 26 2007 г., 01:45
-- Версия сервера: 5.0.45
-- Версия PHP: 4.3.10-200.schlund.1
-- --

-- --------------------------------------------------------

--
-- Структура таблицы `test table`
--

CREATE TABLE `test table` (
`idTest` int(11) NOT NULL auto_increment,
`testetst` varchar(100) collate latin1_german2_ci NOT NULL,
PRIMARY KEY (`idTest`)
) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=latin1 COLLATE=latin1_german2_ci AUTO_INCREMENT=2 ;

--
-- Дамп данных таблицы `test table`
--

INSERT INTO `test table` VALUES (1, '??????, ??????');

-~{}~ 26.10.07 09:43:

и функция mysql_client_encoding() выдает "latin1_de".
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
mixwell
Чувак. Ты реально запарил уже. Хватит ныть здесь.

1. Гугл в пальцы и вперёд.
http://forum.php-myadmin.ru/viewtopic.php?id=95&p=3

2. В сапорт писать не модно?
 

igortik

Новичок
Тоже когда-то голову ломал.

1) Во-первых, кодировка самой таблицы. В Вашем случае нужно поставить cp1251
2) Во-вторых вставить mysql_query("SET NAMES 'cp1251'"); в скрипт до ввода в базу и до вывода, т.е. перед самим запросом, который вытягивает и вносит изменения в базу.
3) Изменить кодировку самой php-страницы

P.S. Чтобы проверить наверняка, просто создайте в базе таблицу с кодировкой cp1251 и попробуйте ввести в нее данные через скрипт, соблюдая эти 3 пункта.
 

mixwell

Новичок
у меня запрос SHOW VARIABLES LIKE 'character%' выдает следущее:

character_set_client utf8
character_set_connection cp1251
character_set_database latin1
character_set_filesystem binary
character_set_results utf8
character_set_server latin1
character_set_system utf8
character_sets_dir /usr/local/mysql-5.0.45-linux-i686-glibc23/share/m...

-~{}~ 26.10.07 19:49:

это получается, что кодировка таблицы -latin1?
 

Mols

Новичок
блин...
1. Укажите кодировку для таблиц(если устраивает cp1251 - норм)
2.При записывании данных в базу - нужно указать в какой кодировке они туда идут,
2.1 из дампа они туда идут в UTF-8 (перепроверьте, но из того, что Вы пишите - это так). MySQL внутри себя их нормально конвертнёт в ту кодировку, в которой поля таблицы(в Вашем случае cp1251).
2.2 дальше "из вашего сайта".... только Вам известно в какой кодировке происходит обмен данными между браузером и Вашими скриптами... так что выясните в какой кодировке вы получаете данные.... и устанавливайте для соединения с MySQL ту кодировку, в которой Вам приходят данные от пользователей (если Вы конечно её в теле скрипта не меняете).
3. Спрашивайте данные у базы в той кодировке - в которой они будут отданы пользователю.

Используйте для этого всего set names;

З.Ы.
вопросик позорненький... если честно
 

mixwell

Новичок
а не проще будет дамп переделать в latin1. База данных и сервер на latin1 все равно. Вы конечно уж извените, просто я с кодировками вообще ни когда не сталкивался, а тут такая за**ца.. И вот еще вопрос дамп у меня в ср1251, а если я начу сод\здавать новые таблицы в данной базе, то они будут уже latin1_de..

-~{}~ 26.10.07 21:06:

и скажите как поменять кодировку базы данных. У меня стоит latin1_german2_ci , я думаю что при замене на cp1251 будет все ok
 
Сверху