[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Каракули + вывод таблиц
Onehp
После прочтения этой темы
решил переделать и вот что получилось, как красиво вывести новость и как сделать что бы были русские буквы? Помогите пожалуйста smile.gif

user posted image

Вот пример моего кода (index.php):

<?
$sql = ("SELECT id,title,description,author,date,mini_img,comments,view FROM `news` ORDER BY date DESC, id DESC LIMIT 5");
$result3 = mysql_query($sql) or die(mysql_error() ."<br/>". $sql);

if (!$result3)
{
echo "<p>Запрос не прошел. Напишите об этом администратору adminmail@mail.ru <br> <strong>Код ошибки:</strong></p>";
exit(mysql_error());
}
$table = "<table border=0 align='center' class='view_text_title'>\n";

while ($row = mysql_fetch_assoc($result3))
{
$table .= "<tr>\n";

$table .= "<td class='view_text_title1'>".$row['id']."</td>";
$table .= "<td>".$row['mini_img']."</td>";
$table .= "<td>".$row['title']."</td>";
$table .= "<td>".$row['description']."</td>";
$table .= "<td>".$row['author']."</td>";
$table .= "<td>".$row['date']."</td>";
$table .= "<td>".$row['comments']."</td>";
$table .= "<td>".$row['view']."</td>";

$table .= "</tr>\n";
}
$table .= "</table>\n";

echo $table;




Спустя 6 минут, 11 секунд (22.07.2010 - 16:58) twin написал(а):
Попробуй почитать еще эту тему. Если не поможет, свисти. )))

Спустя 4 минуты, 46 секунд (22.07.2010 - 17:03) inpost написал(а):
Итак, проблема именно в кодировке!
Что надо? Использовать везде одну и ту же кодировку! Если в базе данных ты поменял кодировку, то прийдется текст заново вносить! Кодировки должны быть прописаны для 100% эфективности (Если решил, чтоб все было хорошо, делай сразу в ЮТФ-8):
Общая кодировка Базы данных.
Кодировка самой таблицы в Базе данных (если поменял, переписать текст прийдется).
Далее в начале пхп страницы:
<?php
mysql_query('SET NAMES utf8');
mysql_query('SET CHARACTER SET utf8');
mysql_query('SET COLLATION_CONNECTION="utf8_general_ci"');
header("Content-Type: text/html; charset=utf-8");
?>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

и последнее, в .htaccess прописываешь:
AddDefaultCharset UTF-8

Спустя 30 минут, 49 секунд (22.07.2010 - 17:34) Onehp написал(а):
twin, прочел статью, решил сделать так:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

Ничего не поменялось sad.gif (добавлял новую запись в БД все равно так же)

inpost, Сделал как ты написал, только ошибка выскочила
Warning: Cannot modify header information - headers already sent by (output started at O:\home\localhost\www\hip-hop\bloki\bd.php:4) in O:\home\localhost\www\hip-hop\index.php on line 31

И еще не понял как это сделать
и последнее, в .htaccess прописываешь:
AddDefaultCharset UTF-8
sad.gif sad.gif

Спустя 4 минуты, 54 секунды (22.07.2010 - 17:39) twin написал(а):
Цитата
twin, прочел статью, решил сделать так:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

Плохо прочел... Я там как раз писал, что этого делать не нужно.

Ошибка у тебя в кодировках БД. База уже заполнена?

Спустя 5 минут, 53 секунды (22.07.2010 - 17:45) Onehp написал(а):
Да, база заполнена..

вот как соединяюсь с БД

<?
// Константы для подключения к СУБД
define("HOST","localhost");
define("USER","логин");
define("PASS","пароль");
define("DB","hiphop");

// Подключение к СУБД
$link = mysql_connect(HOST,USER,PASS) or die (mysql_error());

// Выбираем базу данных
mysql_select_db(DB, $link);

//Устанавливаем кодировку UTF8
mysql_query ("SET NAMES utf8");
mysql_query ("set character_set_client='utf8'");
mysql_query ("set character_set_results='utf8'");
mysql_query ("set collation_connection='utf8_general_ci'");

?>


только вот еще я не понял что делать тут, после "Теперь рассмотрим создание динамического запроса SQL" это я вообще никуда не вписывал sad.gif

Спустя 18 минут, 51 секунда (22.07.2010 - 18:03) twin написал(а):
Цитата
только вот еще я не понял что делать тут

тебе это пока не надо. А проблема у тебя в том, что база заполнена символами кодировки win-1251, а читаешь ты их как utf-8.
Ведь как я понял, базу ты раньше заполнял, когда еще все под виндовской было?

Переделывать - дело неблагодарное. Теперь или перекодировать данные, или вертать все взад.

       mysql_query("SET NAMES 'cp1251'");
и так далее. Жуть.

Хотя я могу и ошибаться. Нужно еще раз внимательно проверить все кодировки. Текста в файлах, заголовки и прочее.

Спустя 18 минут, 25 секунд (22.07.2010 - 18:22) inpost написал(а):
twin
Как раз то, что я и писал, надо заменить старые записи удалить и новые написать в БД =)

Спустя 5 минут, 46 секунд (22.07.2010 - 18:28) Basili4 написал(а):
inpost
зачем можно просто перекодировать

Спустя 1 минута, 31 секунда (22.07.2010 - 18:29) Basili4 написал(а):

Спустя 15 часов, 50 минут, 58 секунд (23.07.2010 - 10:20) Onehp написал(а):
twin, то есть мне удалить БД, и создать её по новой и заполнить? smile.gif

Спустя 9 минут, 54 секунды (23.07.2010 - 10:30) twin написал(а):
Если записей не жалко, то да.

Спустя 2 минуты, 31 секунда (23.07.2010 - 10:33) Onehp написал(а):
twin, Спасибо smile.gif

Спустя 56 минут, 53 секунды (23.07.2010 - 11:29) Onehp написал(а):
Блин sad.gif Все равно одни каракули sad.gif(( Не ужели придется весь сайт снова писать? sad.gif sad.gif

Спустя 10 минут, 35 секунд (23.07.2010 - 11:40) Семён написал(а):
В чём проблема?

База если в windows кодировке, делаете бэкап и переделываете его в UTF-8 затем перезаливаете. Указываете, как выше уже было сказано тип соединения с базой.
Файлы / Скрипты которые работают с базой также сохраняете в UTF-8 кодировке. (пригодиться софт Notepad++ или более проф. среда NetBeans)

Спустя 4 минуты, 40 секунд (23.07.2010 - 11:45) Onehp написал(а):
проблема что слова выводятся так
привет

Демаю так:
Файл bd.php
<?
// Константы для подключения к СУБД
define("HOST","localhost");
define("USER","hiphopneft");
define("PASS","hiphopneft2607911416");
define("DB","hiphop");

// Подключение к СУБД
$link = mysql_connect(HOST,USER,PASS) or die (mysql_error());

// Выбираем базу данных
mysql_select_db(DB, $link);

//Устанавливаем кодировку UTF8
mysql_query ("SET NAMES utf8");
mysql_query ("set character_set_client='utf8'");
mysql_query ("set character_set_results='utf8'");
mysql_query ("set collation_connection='utf8_general_ci'");
?>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">


файл index.php
<? include ("bloki/bd.php");

$result = mysql_query ("SELECT title,meta_d,meta_k,text FROM settings WHERE page='index'");

if (!$result)
{
echo "<p> . mail@mail.ru. <br> <strong> :</strong></p>";
exit (mysql_error());
}

if (mysql_num_rows ($result) > 0)
{
$myrow = mysql_fetch_array ($result);
}

else
{
echo "<p> </p>";
exit ();
}

?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<
html>
<
head>
<
title><? echo $myrow['title']; ?></title>
<
link href="style.css" rel="stylesheet" type="text/css">
<
meta name="description" content="<? echo $myrow['meta_d']; ?>">
<
meta name="keywords" content="<? echo $myrow['meta_k']; ?>">
</
head>


И все равно каракули, а самих кодах где Dreamweaver показывает каракули, браузер показывает русские слова... sad.gif

Спустя 16 секунд (23.07.2010 - 11:45) twin написал(а):
Да что за паника... Все же расписли. Давай по порядку.
1. Открой редактор.
2. Убедись, что кодировка выставлена UTF-8
3. Напиши туда это:
<?php
// Константы для подключения к СУБД
define("HOST","localhost");
define("USER","root");
define("PASS","");
define("DB","test");

// Подключение к СУБД
$link = mysql_connect(HOST,USER,PASS) or die (mysql_error());

// Выбираем базу данных
mysql_select_db(DB, $link);

//Устанавливаем кодировку UTF8
mysql_query ("SET NAMES utf8");
mysql_query ("set character_set_client='utf8'");
mysql_query ("set character_set_results='utf8'");
mysql_query ("set collation_connection='utf8_general_ci'");


mysql_query ("INSERT INTO `test` SET `text` = 'Кракозяблы'");
echo mysql_result (mysql_query ("SELECT `text` FROM `test` ORDER BY `id` DESC LIMIT 1"), 0);


4. Открой PMA.
5. Найди вкладку SQL
6. Сунь туда это:
CREATE DATABASE `test` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

7. Открой эту базу.
8. Сунь в SQL это:
CREATE TABLE `test` (
`id` INT( 10 ) NOT NULL AUTO_INCREMENT ,
`text` VARCHAR( 250 ) NOT NULL ,
PRIMARY KEY ( `id` )
);

9. Теперь сохрани файл.
10. Пуск.

Что видим?

Спустя 2 минуты, 8 секунд (23.07.2010 - 11:47) inpost написал(а):
Onehp
Сделай несколько скрин-шотов!
1) Общая кодировка бд. Должна быть: utf8_unicode_ci
2) кодировка самой таблицы: utf8_unicode_ci
3) кодировка ЯЧЕЙКИ!!!! в которой данные: utf8_unicode_ci
Далее открой её в phpmyadmin и замени новым текстом!

Теперь. В самом скрипте в самом-самом начале пишешь:
<?php
define("HOST","localhost");
define("USER","hiphopneft");
define("PASS","hiphopneft2607911416");
define("DB","hiphop");// Подключение к СУБД
$link = mysql_connect(HOST,USER,PASS) or die (mysql_error()); // Выбираем базу данных
mysql_select_db(DB, $link);

mysql_query('SET NAMES utf8');
mysql_query('SET CHARACTER SET utf8');
mysql_query('SET COLLATION_CONNECTION="utf8_general_ci"');
header("Content-Type: text/html; charset=utf-8"); ?>

Далее между тегами <head> </head> вставляешь:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />


в папке с данной страницей создаешь файл:
.htaccess
в нём вставляешь единственную строчку:
AddDefaultCharset UTF-8


Следующим шагом: Открываешь данный фаил через DreamWeaver, и проделываешь следующую процедуру: Правой кнопкой внизу на пустом месте: Page Properties => Title/Encoding => Encoding: Юникод (UTF-8) => Normalization Form = NONE. Теперь нажимаешь несколько раз RELOAD!!! А после Apply, Ok.

Вот тебе полностью расписал процедуру. Если не получится, создай новую таблицу в БД (но это уже на последний крайний случай, если проделаешь все правильно, то у тебя должно заработать!!!)

Спустя 1 минута, 34 секунды (23.07.2010 - 11:49) Onehp написал(а):
4. Открой PMA.

Что такое РМА? unsure.gif

Спустя 44 секунды (23.07.2010 - 11:49) inpost написал(а):
PMA = PhpMyAdmin
Ты прочитай мое сообщение, тебе в нём все понятно? Если нет - объясню подробнее.

Спустя 15 минут, 41 секунда (23.07.2010 - 12:05) Onehp написал(а):
inpost, Прочитал. Вот примеры скриншотов:

1)user posted image
2)user posted image
3)user posted image
Вылезло куча ошибок..
4)user posted image

Создал файл .htaccess написал в нём, что Вы мне написали.

Следующим шагом: Открываешь данный фаил через DreamWeaver, и проделываешь следующую процедуру: Правой кнопкой внизу на пустом месте: Page Properties => Title/Encoding => Encoding: Юникод (UTF-8) => Normalization Form = NONE. Теперь нажимаешь несколько раз RELOAD!!! А после Apply, Ok.


Вот это не совсем понял..

Спустя 14 минут, 17 секунд (23.07.2010 - 12:19) Onehp написал(а):
ВСЕМ ВСЕМ ВСЕМ!!! БОЛЬШОЕ СПАСИБО!!! wink.gif smile.gif smile.gif
___________
Избавились от каракуль появились вопросики blink.gif
"При текущей кодировке документа нельзя правильно сохранить все символы в документе. Можно изменить кодировку на ЮТФ-8 или на любую другую, которая поддерживает специальные символы данного документа"
Как это изменить?

Спустя 6 минут, 23 секунды (23.07.2010 - 12:26) DedMorozzz написал(а):
В суть проблемы далее коротних тегов не вникал. <? замени на <?php
UTF - самая универсальная кодировка. Она поддерживает всё.

Спустя 3 минуты, 57 секунд (23.07.2010 - 12:30) Onehp написал(а):
DedMorozzz, нет не помогает
Да и в коде нету скобок php

<td width="182px" valign="top" class="left">
<
p align="center" class="title">Навигация</p>
<
div id="coolmenu">
<
a href="index.php">Главная</a>
<
a href="news.php">Новости</a>
<!--<
a href="articles.php">Статьи</a>-->
<
a href="photo.php">Фото</a>
<
a href="video.php">Видео</a>
<
a href="faq.php">FAQ</a>
</
div></td>

Просто пересоздал файл smile.gif

Спустя 6 минут, 37 секунд (23.07.2010 - 12:36) inpost написал(а):
Берешь чистый лист, прописываешь все, как мы писали, чтоб строк в итоге было 10-15. Делаешь соединение и выборку из базы данных! И по ней работаешь.
Весь ненужный код, типо того, что ты только что показал, вставлять будешь уже после того, когда с кодировкой разберёшься!

Спустя 2 часа, 4 минуты, 41 секунда (23.07.2010 - 14:41) _Dimarik__ написал(а):


1. когда я в .htaccess изменяю кодировку, у меня только Internet Explorer нормально отображает. Opera и Mozilla хрень всякую выводят. Конечно, это дело поправимое - можно поменять кодировку в опере и мозилке, но ведь не все пользователи это умеют делать.
2. Можно ли сделать так, чтобы MySQL нормально работало в стандартной кодировке, в которой по умолчанию работают опера и мозилла????
3. Как можно узнать, в какой кодировке php создаёт сайты? это в php.ini должно быть написано или как?

Спустя 20 минут, 7 секунд (23.07.2010 - 15:01) twin написал(а):
Зря мечешься. Я написал, с чего начать.

Спустя 42 минуты, 4 секунды (23.07.2010 - 15:43) inpost написал(а):
_Dimarik__ Что значит, всякую дрянь? Я расписал как исправить, чуточку по другому расписал Твин...
Заходишь в кодировку и смотришь в какой передается! Везде надо поставить галочку "Определять автоматически".

Спустя 2 часа, 41 минута, 7 секунд (23.07.2010 - 18:24) _Dimarik__ написал(а):
Всё распишу по-порядку.

1. создал БД, а в ней таблицу
mysql>CREATE DATABASE `test` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
Query OK, 1 row affected (0.00 sec)
mysql> USE test;
Database changed
mysql> CREATE TABLE testers
-> (id INT(11) NOT NULL AUTO_INCREMENT,
-> info TINYTEXT,
-> PRIMARY KEY(id));
Query OK, 0 rows affected (0.03 sec)


2. вот код

<?php
//Адрес сервера MySQL
$dblocation = 'localhost';
//Имя базы на хостигше или локальной машине
$dbname = 'test';
//имя пользователя базы данных
$dbuser = 'root';
//и его пароль
$dbpassword = "";

//Устанавливаем соединение с базой нанных
$dbcnx = @mysql_connect($dblocation, $dbuser, $dbpassword);
if(! $dbcnx)
{
exit("Невозможно установить соединение с MySQL-сервером");
}
//Выбираем базу данных
if(! @mysql_select_db($dbname, $dbcnx))
{
exit("Ошибка выбора базы данных");
}
/*Устанавливаем кодировку соединения. Следует выбрать
ту кодировку, в которой данные будут отправляться MySQL-серверу*/

mysql_query('SET NAMES utf8');
mysql_query('SET CHARACTER SET utf8');
mysql_query('SET COLLATION_CONNECTION="utf8_general_ci"');

mysql_query("INSERT INTO testers VALUE (NULL,'РаЗ дВа ТрИ');")or exit("error!".mysql_error());

?>

Результат: ничего не заносит. Может это потому что я использовал TINYTEXT, а не VARCHAR(250)????
вот результат:
mysql> SELECT * FROM testers;
+----+------+
| id | info |
+----+------+
| 1 | |
+----+------+
1 row in set (0.02 sec)

mysql>

то есть id заносит, а info - нет

Спустя 5 минут, 27 секунд (23.07.2010 - 18:30) inpost написал(а):
mysql_query("INSERT INTO `testers` SET
`info`='TEXT'
");

Спустя 11 минут, 54 секунды (23.07.2010 - 18:42) _Dimarik__ написал(а):
то же самое. id увеличивается, а поле INFO свободно. ни каракуль, ничего там нет

Спустя 15 минут, 57 секунд (23.07.2010 - 18:58) Michael написал(а):
Странно как то ...
А вот в первом запросе ошибка была, надо:
INSERT INTO testers VALUES

Спустя 1 минута, 18 секунд (23.07.2010 - 18:59) _Dimarik__ написал(а):
Michael, я в книжке читал, можно VALUE когда одно значение вводишь. и работает, но только с цифрами и латиницей. вместо русского пустоту пишет

Спустя 24 минуты, 36 секунд (23.07.2010 - 19:23) Michael написал(а):
Себе все так же создал - все ОК.
Ты - в консоли вводишь/смотришь? Установи себе phpmyadmin и в нем смотри.

Спустя 7 минут, 48 секунд (23.07.2010 - 19:31) _Dimarik__ написал(а):
ну да. вводил я в консоли. Сейчас через PMA посмотрел. результат тот же. ничего нету там

Спустя 14 минут, 23 секунды (23.07.2010 - 19:46) _Dimarik__ написал(а):
а когда я ввожу команду в консольке, у меня всё нормально записывается.
Косяк когда я ввожу через php

Спустя 7 минут, 1 секунда (23.07.2010 - 19:53) inpost написал(а):
Ну вот опять, проблема с кодировкой! Зайди в ПМА и сделай скрин-шот этой таблицы (Структуры именно этой таблицы, а не всех!!!), а так же кидани сюда весь код страницы, в которой ты добавляешь! Единственное уточнение, удали с неё все ненужное!!!

Спустя 4 минуты, 10 секунд (23.07.2010 - 19:57) _Dimarik__ написал(а):
я погуглил, нашёл что в my.ini ничего не сказано про default character-sеt. Может быть это из-за этого?
Цитата
# Example MySQL config file for medium systems.
#
# This is for a system with little memory (32M - 64M) where MySQL plays
# an important part, or systems up to 128M where MySQL is used together with
# other programs (such as a web server)
#
# You can copy this file to
# /etc/my.cnf to set global options,
# mysql-data-dir/my.cnf to set server-specific options (in this
# installation this directory is C:\mysql\data) or
# ~/.my.cnf to set user-specific options.
#
# In this file, you can use all long options that a program supports.
# If you want to know which options a program supports, run the program
# with the "--help" option.

# The following options will be passed to all MySQL clients
[client]
#password = your_password
port  = 3306
socket  = /tmp/mysql.sock

# Here follows entries for some specific programs

# The MySQL server
[wampmysqld]
port  = 3306
socket  = /tmp/mysql.sock
skip-locking
key_buffer = 16M
max_allowed_packet = 1M
table_cache = 64
sort_buffer_size = 512K
net_buffer_length = 8K
read_buffer_size = 256K
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 8M
basedir=c:/wamp/bin/mysql/mysql5.1.36
log-error=c:/wamp/logs/mysql.log
datadir=c:/wamp/bin/mysql/mysql5.1.36/data

# Don't listen on a TCP/IP port at all. This can be a security enhancement,
# if all processes that need to connect to mysqld run on the same host.
# All interaction with mysqld must be made via Unix sockets or named pipes.
# Note that using this option without enabling named pipes on Windows
# (via the "enable-named-pipe" option) will render mysqld useless!
#
#skip-networking

# Disable Federated by default
skip-federated

# Replication Master Server (default)
# binary logging is required for replication
log-bin=mysql-bin

# binary logging format - mixed recommended
binlog_format=mixed

# required unique id between 1 and 2^32 - 1
# defaults to 1 if master-host is not set
# but will not function as a master if omitted
server-id = 1

# Replication Slave (comment out master section to use this)
#
# To configure this host as a replication slave, you can choose between
# two methods :
#
# 1) Use the CHANGE MASTER TO command (fully described in our manual) -
#    the syntax is:
#
#    CHANGE MASTER TO MASTER_HOST=<host>, MASTER_PORT=<port>,
#    MASTER_USER=<user>, MASTER_PASSWORD=<password> ;
#
#    where you replace <host>, <user>, <password> by quoted strings and
#    <port> by the master's port number (3306 by default).
#
#    Example:
#
#    CHANGE MASTER TO MASTER_HOST='125.564.12.1', MASTER_PORT=3306,
#    MASTER_USER='joe', MASTER_PASSWORD='secret';
#
# OR
#
# 2) Set the variables below. However, in case you choose this method, then
#    start replication for the first time (even unsuccessfully, for example
#    if you mistyped the password in master-password and the slave fails to
#    connect), the slave will create a master.info file, and any later
#    change in this file to the variables' values below will be ignored and
#    overridden by the content of the master.info file, unless you shutdown
#    the slave server, delete master.info and restart the slaver server.
#    For that reason, you may want to leave the lines below untouched
#    (commented) and instead use CHANGE MASTER TO (see above)
#
# required unique id between 2 and 2^32 - 1
# (and different from the master)
# defaults to 2 if master-host is set
# but will not function as a slave if omitted
#server-id      = 2
#
# The replication master for this slave - required
#master-host    =  <hostname>
#
# The username the slave will use for authentication when connecting
# to the master - required
#master-user    =  <username>
#
# The password the slave will authenticate with when connecting to
# the master - required
#master-password =  <password>
#
# The port the master is listening on.
# optional - defaults to 3306
#master-port    =  <port>
#
# binary logging - not required for slaves, but recommended
#log-bin=mysql-bin

# Point the following paths to different dedicated disks
#tmpdir  = /tmp/ 
#log-update  = /path-to-dedicated-directory/hostname

# Uncomment the following if you are using InnoDB tables
#innodb_data_home_dir = C:\mysql\data/
#innodb_data_file_path = ibdata1:10M:autoextend
#innodb_log_group_home_dir = C:\mysql\data/
#innodb_log_arch_dir = C:\mysql\data/
# You can set .._buffer_pool_size up to 50 - 80 %
# of RAM but beware of setting memory usage too high
#innodb_buffer_pool_size = 16M
#innodb_additional_mem_pool_size = 2M
# Set .._log_file_size to 25 % of buffer pool size
#innodb_log_file_size = 5M
#innodb_log_buffer_size = 8M
#innodb_flush_log_at_trx_commit = 1
#innodb_lock_wait_timeout = 50

[mysqldump]
quick
max_allowed_packet = 16M

[mysql]
no-auto-rehash
# Remove the next comment character if you are not familiar with SQL
#safe-updates

[isamchk]
key_buffer = 20M
sort_buffer_size = 20M
read_buffer = 2M
write_buffer = 2M

[myisamchk]
key_buffer = 20M
sort_buffer_size = 20M
read_buffer = 2M
write_buffer = 2M

[mysqlhotcopy]
interactive-timeout

[mysqld]
port=3306



а было написано что там должны быть вот эти строки:

Вот пример этого файла, в нем остались строки, относящиеся только к настройке языка:

# Example mysql config file.
# Copy this file to c:\my.cnf to set global options
#
# One can use all long options that the program supports.
# Run the program with --help to get a list of available options


# This will be passed to all mysql clients
[client]
default-character-set=cp1251
character-sets-dir = d:/usr/local/mysql/share/charsets

[mysqld]
default-character-set=cp1251
default-collation = cp1251_general_ci
character-sets-dir=d:/usr/local/mysql/share/charsets/

[mysql]
default-character-set = cp1251

Бывают случаи когда, даже после этих изменений, в Web интерфейсе, например в CMS, вместо русских букв отображаются знаки "?" или иные символы. В этом случае необходимо добавить в файл my.cnf следующую строку:
[mysqld]
init-connect='SET NAMES cp1251'

или выполнять запрос SET NAMES cp1251 в начале установленного соединения к базе данных.
информацию взял с http://sql.ru/faq/faq_topic.aspx?fid=152

Спустя 8 минут, 20 секунд (23.07.2010 - 20:05) _Dimarik__ написал(а):
<?php
//Адрес сервера MySQL
$dblocation = 'localhost';
//Имя базы на хостигше или локальной машине
$dbname = 'test';
//имя пользователя базы данных
$dbuser = 'root';
//и его пароль
$dbpassword = "";

//Устанавливаем соединение с базой нанных
$dbcnx = @mysql_connect($dblocation, $dbuser, $dbpassword);
if(! $dbcnx)
{
exit("Невозможно установить соединение с MySQL-сервером");
}
//Выбираем базу данных
if(! @mysql_select_db($dbname, $dbcnx))
{
exit("Ошибка выбора базы данных");
}
/*Устанавливаем кодировку соединения. Следует выбрать
ту кодировку, в которой данные будут отправляться MySQL-серверу*/

mysql_query('SET NAMES utf8');
mysql_query('SET CHARACTER SET utf8');
mysql_query('SET COLLATION_CONNECTION="utf8_general_ci"');

mysql_query("INSERT INTO testers VALUE (NULL,'Русский');")or exit("error!".mysql_error());

?>

Спустя 15 минут, 43 секунды (23.07.2010 - 20:21) inpost написал(а):
1. Ты видишь какой раздел открыт? "Обзор"... а я писал "Покажи структуру".
2. я уже раз 10 писал, нужен заголовок с кодировкой:
header("Content-Type: text/html; charset=utf-8");

3. В этом файле напиши любой русский текст в самом конце!!! (echo "Тра-ля-ля";). Теперь через браузер посмотри, какая кодировка ставится на автомате! Проверь несколькими браузерами! Убедись, что она ставится автоматически "Автовыбор"!!!

Спустя 8 минут, 57 секунд (23.07.2010 - 20:30) _Dimarik__ написал(а):
<?php
//Адрес сервера MySQL
$dblocation = 'localhost';
//Имя базы на хостигше или локальной машине
$dbname = 'test';
//имя пользователя базы данных
$dbuser = 'root';
//и его пароль
$dbpassword = "";

//Устанавливаем соединение с базой нанных
$dbcnx = @mysql_connect($dblocation, $dbuser, $dbpassword);
if(! $dbcnx)
{
exit("Невозможно установить соединение с MySQL-сервером");
}
//Выбираем базу данных
if(! @mysql_select_db($dbname, $dbcnx))
{
exit("Ошибка выбора базы данных");
}
/*Устанавливаем кодировку соединения. Следует выбрать
ту кодировку, в которой данные будут отправляться MySQL-серверу*/

mysql_query('SET NAMES utf8');
mysql_query('SET CHARACTER SET utf8');
mysql_query('SET COLLATION_CONNECTION="utf8_general_ci"');
header("Content-Type: text/html; charset=utf-8");
echo "трали-вали-ляляля";
mysql_query("INSERT INTO testers VALUE (NULL,'Русский');")or exit("error!".mysql_error());


?>[/php]

Спустя 7 минут, 29 секунд (23.07.2010 - 20:37) inpost написал(а):
Давай так, Ты меняешь тип на TEXT, NULL на НЕТ! По умолчанию "None".
В коде вместо последней строчки вставляешь мою:
$text = "Pivo eto Пиво";
mysql_query("INSERT INTO `testers` SET
`info` = '"
.$text."'
"
,$dbcnx);


Если после этого работать не будет, выложи тут свой php фаил!

Спустя 9 минут, 8 секунд (23.07.2010 - 20:46) _Dimarik__ написал(а):
<?php
//Адрес сервера MySQL
$dblocation = 'localhost';
//Имя базы на хостигше или локальной машине
$dbname = 'test';
//имя пользователя базы данных
$dbuser = 'root';
//и его пароль
$dbpassword = "";

//Устанавливаем соединение с базой нанных
$dbcnx = @mysql_connect($dblocation, $dbuser, $dbpassword);
if(! $dbcnx)
{
exit("Невозможно установить соединение с MySQL-сервером");
}
//Выбираем базу данных
if(! @mysql_select_db($dbname, $dbcnx))
{
exit("Ошибка выбора базы данных");
}
/*Устанавливаем кодировку соединения. Следует выбрать
ту кодировку, в которой данные будут отправляться MySQL-серверу*/

mysql_query('SET NAMES utf8');
mysql_query('SET CHARACTER SET utf8');
mysql_query('SET COLLATION_CONNECTION="utf8_general_ci"');
header("Content-Type: text/html; charset=utf-8");
echo "трали-вали-ляляля";
$text = "Pivo eto Пиво";
mysql_query("INSERT INTO `testers` SET
`info` = '"
.$text."'
"
,$dbcnx);

?>

Спустя 2 минуты, 54 секунды (23.07.2010 - 20:49) _Dimarik__ написал(а):
вот видишь? у меня opera и Mozilla такие квадратики выводит. Mozilla, internet explorer то же самое. только в эксплорере если вручную поменять с UTF-8 на КИРИЛЛИЦА Windiws Нормально отобразится. Это же ерунда, когда при СТАНДАРТНЫХ настройках сайт не отображается

Спустя 1 час, 27 минут, 27 секунд (23.07.2010 - 22:17) _Dimarik__ написал(а):
так в чём дело? почему у меня не работает?(((

Спустя 14 часов, 16 минут, 56 секунд (24.07.2010 - 12:34) Michael написал(а):
Одна только осталась версия: кодировка самого php файла не utf-8. В каком редакторе работаешь? В принципе почти везде можно перекодировать.
Вот смотри в Notepad++ показана кодировка:
user posted image
и ниже конвертировать.

В дриме перекодирую также, в php expert editor и д.р.

Спустя 55 минут, 56 секунд (24.07.2010 - 13:30) _Dimarik__ написал(а):
Michael!!Спасибо тебе огромное! в АНСИ у меня было в ноутпаде++. А то я уже думал что в латиницу буду преобразовывать и заносить в ней (БД через жопу), а потом назад в кириллицу.
Короче ппц как благодарен!
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.