Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.09.2010, 18:26   #1
vedro-compota
любитель-далеко не
Участник клуба
 
Аватар для vedro-compota
 
Регистрация: 13.04.2010
Сообщений: 1,156
По умолчанию Вопрос о кодировке.

Всем добрый вечер ( у нас тут сейчас вечер).
Собственно, как многие уже знают - причина создания этой темы - это появления знаков вопроса и прочих непристойных символов после "извлечения" "русских" данных из MySQL.
Процесс моих изысканий имел следующие периоды -
1) Сначала мне посоветовали использовать SET NAMES - но для этого -
Цитата:
Попробуйте сразу после подключения к БД написать:

Код:

mysql_query("SET NAMES 'utf8'");

Обратите внимание, чтобы кодировка в которой сохранен скрипт, которая указана у полей в БД, и которую вы указываете в этой функции совпадали.
чтобы выяснить кодировку прменил
Код:
show variables;
2) затем все CHARACTER_SETы (судя по командной строке) оказались - cp1251 , кроме CHARACTER_SET_SYSTEM= UTF8 и CHARACTER_SET_FILESYSTEM= BINARY.
(после этого я подумал, что у меня кодировка cp1251 => SET NAMES надо с ней использовать)
3) после ещё ряда неудач набрёл на сайт , где обнаружил функцию -
Код:
mysql_client_encoding()
и она сказа мне, что кодировка.......................... .... -
Цитата:
latin1
всё. тут история заканчивается.
собственно вопросы ( прошу помочь) -
1) какая же на самом деле кодировка базы?
2) какая её полностью перетащить на utf-8(прочитал, что эта кодировка самая "мощная")
3) как не потерять данные при таком манёвре ( поиском пользовался - но там всё про специальный скрипт - а хотелось бы сделать это руками)
_____
прошу ответить хоть на какой-нибудь пункт.
Заранее благодарю )
против абортов=за + жизнь;.фкн вгу;_______________________мойблг
vedro-compota вне форума Ответить с цитированием
Старый 24.09.2010, 20:03   #2
dr.Chas
***
Участник клуба
 
Аватар для dr.Chas
 
Регистрация: 30.07.2007
Сообщений: 1,162
По умолчанию

phpinfo сюда. Денвер?

[add]

Начнём по порядку:
1) в <head> сайта

Код HTML:
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
2) Каждый файл сайта перевести в кодировку мускла без бум. (если незнаешь как, скачай нотепад)

3) После конекта к мусклу, до конекта сбазой выполняешь запрос
Код:
mysql_query('SET NAMES utf8');
Не помогло? Тогда дальше

4) Ищешь файл my.ini, у меня прямо в корневой директории мускла лежит. Находишь там такой параметр и делаешь так:
Код:
[mysql]
default-character-set=utf8
5) Таблички тоже все в utf8_general_ci.

Пробуешь, пишешь сюда о результатах + скрин сайта + скрин бд (где лежит материал)

Цитата:
затем все CHARACTER_SETы (судя по командной строке) оказались - cp1251 , кроме CHARACTER_SET_SYSTEM= UTF8 и CHARACTER_SET_FILESYSTEM= BINARY.
Это беда всех мануалов по установке Все пишут после установки в настройках ставить cp1251 , а надо utf8

Последний раз редактировалось dr.Chas; 24.09.2010 в 20:25.
dr.Chas вне форума Ответить с цитированием
Старый 27.09.2010, 11:44   #3
vedro-compota
любитель-далеко не
Участник клуба
 
Аватар для vedro-compota
 
Регистрация: 13.04.2010
Сообщений: 1,156
По умолчанию

1) Приветствую вас, dr.Chas ))
2) Приступаю "по порядку" ))
-------------------------------------
По порядку -
вставил команду насильственного изменения кодировки set names и строчку про html-контент - вот что получилось (фрагмент) -
Код:
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>  Результаты поиска. </title>
</head>
 <center>
    <h1> А вот и то, что нам удалось найти </h1>
	<?php
	  $searchterm= trim($_POST["searchterm"]);
	  $searchtype= $_POST["searchtype"] ;
	  if (!$searchtype || !$searchterm)
	  {
	      echo "ВЫ что-то недоуказали. Пожалуйста ,доукажите )) ";
		  exit;
	  }
	   else
	  { echo " Пашет пока ))  ";
	  }
	  $searchtype =addslashes($searchtype);
	  $searcterm =addslashes($searchterm);
	  
	  @ $db = mysql_pconnect ("localhost", "root" , "1380");
	  if (!$db)
	  { echo "Ошибка произошла....попробуй ещё";
	    exit;}
		
       mysql_query("SET NAMES utf8"); 

		mysql_select_db ( "bazadannuh" );
+ изменил строчку в my.ini ( опять сначала изменил с помощью Bred'а - но в блокноте эти изменения видны не были) - потом с помошью блокнота- теперь вроде и в бреде и в блокноте изменилось -но изменилось ли на самом деле - не знаю....всё дело в восстановлении системы?)
теперь так -
Цитата:
# The default character set that will be used when a new schema or table is
# created and no character set is defined
default-character-set=utf8
Перезапустил апач и службу ( или как там это называется - не знаю) mysql - не помогло.
против абортов=за + жизнь;.фкн вгу;_______________________мойблг

Последний раз редактировалось vedro-compota; 27.09.2010 в 13:16.
vedro-compota вне форума Ответить с цитированием
Старый 27.09.2010, 13:52   #4
vedro-compota
любитель-далеко не
Участник клуба
 
Аватар для vedro-compota
 
Регистрация: 13.04.2010
Сообщений: 1,156
По умолчанию

Прикрепляю phpinfo(); файл с кодом и my.ini .
Цитата:
Денвер?
не. апач едет на пхп и погоняет mysql ))
НУ или - все трое в упряжке)
Вложения
Тип файла: zip phpinfo.zip (14.9 Кб, 8 просмотров)
Тип файла: zip my.zip (3.6 Кб, 7 просмотров)
Тип файла: zip u2php.zip (948 байт, 9 просмотров)
против абортов=за + жизнь;.фкн вгу;_______________________мойблг
vedro-compota вне форума Ответить с цитированием
Старый 27.09.2010, 14:03   #5
dr.Chas
***
Участник клуба
 
Аватар для dr.Chas
 
Регистрация: 30.07.2007
Сообщений: 1,162
По умолчанию

Сам скрин странички забыл. И в базе оно в нормальном виде или тоже в вопросиках?

файл httpd.conf у апача не помню где-то в папке conf вроде. В нём найди параметр
AddDefaultCharset если закомментирован, раскомментируй. Сделай так AddDefaultCharset utf8.

[add]
сама таблица, и поля в какой кодировке?

Последний раз редактировалось dr.Chas; 27.09.2010 в 14:17.
dr.Chas вне форума Ответить с цитированием
Старый 27.09.2010, 14:47   #6
vedro-compota
любитель-далеко не
Участник клуба
 
Аватар для vedro-compota
 
Регистрация: 13.04.2010
Сообщений: 1,156
По умолчанию

1)
Цитата:
И в базе оно в нормальном виде или тоже в вопросиках?
- я забивал данные через командну стоку - ну и , соответственно, в командной строке оно по-нормальному (по-русски, а что по-ангоийски - то по английски)
2)
Цитата:
сама таблица, и поля в какой кодировке?
этого не знаю так как -
Цитата:
все CHARACTER_SETы (судя по командной строке) оказались - cp1251 , кроме CHARACTER_SET_SYSTEM= UTF8 и CHARACTER_SET_FILESYSTEM= BINARY.
а mysql_client_encoding() говорит, что кодировка -
Цитата:
latin1
Специальным образом при занесении данных кодировку не указывал.
3) Скрин страницы добавляю .
Изображения
Тип файла: jpg страница.jpg (72.3 Кб, 152 просмотров)
против абортов=за + жизнь;.фкн вгу;_______________________мойблг
vedro-compota вне форума Ответить с цитированием
Старый 27.09.2010, 14:52   #7
Johnatan
Antimoderаtoris
Участник клуба
 
Регистрация: 08.02.2008
Сообщений: 1,251
По умолчанию

1) Файлы php должны быть в utf-8
2) База, таблицы и строки должны быть в utf-8
3) HTML вывод должен быть в utf-8
4) set names utf8

На дефолтной установке апача-php-mysql и при выполнении данных четырёх требований - utf-8 будет выводиться корректно ВСЕГДА.
98% из тысячи моих постов сделаны в профильном подфоруме. Я не накручиваю свои посты болтанием в "курилке", а ты?
Johnatan вне форума Ответить с цитированием
Старый 27.09.2010, 15:04   #8
dr.Chas
***
Участник клуба
 
Аватар для dr.Chas
 
Регистрация: 30.07.2007
Сообщений: 1,162
По умолчанию

Цитата:
Сообщение от vedro-compota Посмотреть сообщение
2) этого не знаю так как
А если поставить phpmyadmin хотя бы?
dr.Chas вне форума Ответить с цитированием
Старый 27.09.2010, 20:52   #9
vedro-compota
любитель-далеко не
Участник клуба
 
Аватар для vedro-compota
 
Регистрация: 13.04.2010
Сообщений: 1,156
По умолчанию

Цитата:
А если поставить phpmyadmin хотя бы?
таковой имеется -настраивал, правда ни разу ещё не использовал. посмотрю .
Цитата:
На дефолтной установке апача-php-mysql и при выполнении данных четырёх требований - utf-8 будет выводиться корректно ВСЕГДА.
вот этим я и думаю закончить свои изыскания
против абортов=за + жизнь;.фкн вгу;_______________________мойблг
vedro-compota вне форума Ответить с цитированием
Старый 28.09.2010, 12:30   #10
vedro-compota
любитель-далеко не
Участник клуба
 
Аватар для vedro-compota
 
Регистрация: 13.04.2010
Сообщений: 1,156
По умолчанию

dr.Chas, на главной странице phpmyadmin вот что имеется -
Цитата:
MySQL

* Сервер: localhost via TCP/IP
* Версия сервера: 5.1.48-community
* Версия протокола: 10
* Пользователь: root@localhost
* MySQL-кодировка: UTF-8 Unicode (utf8)
получается чтовсё должно работать без set names......?
против абортов=за + жизнь;.фкн вгу;_______________________мойблг

Последний раз редактировалось vedro-compota; 28.09.2010 в 12:41.
vedro-compota вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сохранение файла в Dos кодировке mistx Microsoft Office Excel 5 04.12.2009 16:33
Сохранять текст в нужной кодировке snake-as Microsoft Office Excel 5 28.10.2008 06:37
как определить в какой кодировке текстовый файл? PuzzleC Общие вопросы C/C++ 7 11.12.2007 13:52
Как сохранить текст в DOS кодировке? oleg kutkov Общие вопросы Delphi 9 06.08.2007 09:32