|
|
|
| У меня такая проблема нужно чтоб в базе был русский текст, но при выводе вот что выходит
имя = џаЁЄ
E-mail = s.ya.n@mail.ru
about = kz «п «п
|
я читал темы на форуме но чтото не чего не понял.
помогите позжалуста. | |
|
|
|
|
|
|
|
для: x][x
(18.11.2006 в 23:27)
| | У меня по началу тоже была эта проблема, а узнал решение тоже тут, на форуме:
<?
if (!mysql_query("SET NAMES 'cp1251'"))
die('Невозможно поменять кодировку в Базе Данных');
?>
|
этот код вставьте сразу после подключения и выделения Базы данных! | |
|
|
|
|
|
|
|
для: ihoru
(19.11.2006 в 01:14)
| | Если я вставляю эту строчку вот что получается
имя = ????
E-mail = s.ya.n@mail.ru
about = kz «? «?
|
Я так понял кодировка поменялась но толку ). | |
|
|
|
|
|
|
|
для: x][x
(18.11.2006 в 23:27)
| | У вас текст в базе данных в кодировке cp866 (DOS), вероятно вы набирали его в консоли, для того, чтобы текст был в кодировке cp1251 (Windows) перед работой в консоли необходимо выполнить команду
которая изменит текущую кодировку. | |
|
|
|
|
|
|
|
для: cheops
(19.11.2006 в 12:20)
| | я набирал базу в MySQL Command Line Client, в my.ini я изменил строку
default-character-set=ital1
|
на
default-character-set=cp1251
|
на рнр странице после подключения к базе данных вставил строку
mysql_query("SET NAMES 'cp1251'"
|
но всеравно не помогает, пишет ???? за место русского текста. если я в поле (в MySQL) для ввода русского текста ставлю принудительно cp1251, тогда при вводе русского текста он пишет что слишком большой размер строки (хотя строка состоит лишь из 1 символа). | |
|
|
|
|
|
|
|
для: x][x
(19.11.2006 в 13:19)
| | Нет, следует запускать mysql отдельно предварительно выполнив команду chcp 1251. MySQL Command Line Client не позволит выполнить другую команду. Следует запускать mysql через командную строку (Пуск -> Программы -> Стандартные -> Командная строка). | |
|
|
|
|
|
|
|
для: cheops
(19.11.2006 в 18:26)
| | А как быть если необходима utf-8? Тоже замучала кодировка. Она конечно выводиться в виде текста на экран и вполне читаема ну это как в редакторе P' а на экране а. Но мне желательно дальше обработать эти данные например с base_64 а здесь ждут глюки. Данные из базы коверкаются самым не вообразимым способом. Как можно обработать utf до ввода или после ввода в базу с cp1251. | |
|
|
|
|
|
|
|
для: cheops
(19.11.2006 в 18:26)
| | При входе в MySQL через командную строку пишется Enter password: (как MySQL Command Line Client) я ввожу пороль но он пишет что не верная база данных, а если ввожу chcp 1251 русский текст превращается в иероглифы.
Microsoft Windows XP [Версия 5.1.2600]
(С) Корпорация Майкрософт, 1985-2001.
C:\Documents and Settings\Roman.TECH>cd C:\Program Files\MySQL\MySQL Server 5.0\
bin
C:\Program Files\MySQL\MySQL Server 5.0\bin>mysql -u root -p 1
Enter password: *
ERROR 1049 (42000): Unknown database '1'
C:\Program Files\MySQL\MySQL Server 5.0\bin>mysql -u root -p 1
|
Но когда я пишу за место пороля имя базы данных он выдает
Enter password: ***
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: Y
ES)
C:\Program Files\MySQL\MySQL Server 5.0\bin>
|
| |
|
|
|
|
|
|
|
для: x][x
(20.11.2006 в 14:03)
| | Судя по числу звездочек, имя БД у Вас как раз из трех букв. Вот его и нужно писать вместо единицы после -p . А когда спрашивают пароль , нужно писать пароль. | |
|
|
|
|
|
|
|
для: x][x
(18.11.2006 в 23:27)
| | Теперь при выводе данных вместо русских букв ?????? вот код
<?php
$dblocation="localhost";
$dbuser="root";
$dbpasw="1";
$lin=mysql_connect($dblocation, $dbuser,$dbpasw);
if( !$lin ) die( mysql_error() );
if (!mysql_select_db(exe, $lin));
mysql_query("SET NAMES 'cp1251'");
$ath=mysql_query("select * from exe2;");
if ($ath)
{
$aq=mysql_fetch_array($ath);
echo "имя = ".$aq['name']."<br>";
}
?>
|
При назначении Типа кодирования вот что получается:
exe4 | CREATE TABLE `exe4` (
`name` text character set cp1251
) ENGINE=InnoDB DEFAULT CHARSET=latin1 |
1 row in set (0.00 sec)
mysql> insert into exe4 values ('??????? Hi');
ERROR 1406 (22001): Data too long for column 'name' at row 1
mysql>
| Я так понял все дело в том что вот здесь стоит latin1 как это можно изменить? | |
|
|
|
|
|
|
|
для: x][x
(18.11.2006 в 23:27)
| | Я тут почитал одну тему http://www.softtime.ru/forum/read.php?id_forum=3&id_theme=26385&page=8 по этой же проблеме,
так вот делаю все что там написано и когда я заполняю колонку русскими символами вот что он выдает:
mysql> create table q (
-> win_name text character set cp1251
-> );
Query OK, 0 rows affected (0.08 sec)
mysql> insert into q values ('Кодировка Windows');
ERROR 1406 (22001): Data too long for column 'win_name' at row 1
mysql>
|
Позжалуйста объясните из-за чего это происходит? | |
|
|
|
|
|
|
|
для: x][x
(20.11.2006 в 23:21)
| | У вас не настроена (или настроена неправильна) кодировка сервера MySQL - приведите пожалуйста содержимое файла my.ini. | |
|
|
|
|
|
|
|
для: cheops
(20.11.2006 в 23:52)
| | Вот он | |
|
|
|
|
|
|
|
для: x][x
(20.11.2006 в 23:54)
| | Уберите директиву
default-character-set=latin1
|
из секции [mysql] | |
|
|
|
|
|
|
|
для: cheops
(21.11.2006 в 11:53)
| | Всеравно пишет
Data too long for column 'name' at row 1
| ,
в чем же может быть проблема?
А такие проблемы с русским языком во всех версиях MySQL? | |
|
|
|
|
|
|
|
для: x][x
(18.11.2006 в 23:27)
| |
mysql> create database exe;
Query OK, 1 row affected (0.03 sec)
mysql> use exe;
Database changed
mysql> create table exe (name text character set cp1251);
Query OK, 0 rows affected (0.08 sec)
mysql> insert into exe values ('Кодировка Windows');
ERROR 1406 (22001): Data too long for column 'name' at row 1
mysql> show create table exe;
+-------+-----------------------------------------------------------------------
----+
| Table | Create Table
|
+-------+-----------------------------------------------------------------------
----+
| exe | CREATE TABLE `exe` (
`name` text
) ENGINE=InnoDB DEFAULT CHARSET=cp1251 |
+-------+-----------------------------------------------------------------------
----+
1 row in set (0.00 sec)
mysql>
|
Я так думаю, что не то ввожу при создании базы, результат всегда одинаковый, если я создою базу выбираю ее и создаю таблицу в ней или если я в созданой базе создаю таблицу. | |
|
|
|
|
|
|
|
для: x][x
(21.11.2006 в 19:48)
| | Почему Вы думаете, что с консоли вводите данные в 1251?
По умолчанию консольная кодировка - cp866. И Вы её вроде как решили не менять.... | |
|
|
|
|
|
|
|
для: Trianon
(21.11.2006 в 20:02)
| | не я до этого кода ввожу chcp 1251. | |
|
|
|
|
|
|
|
для: x][x
(21.11.2006 в 20:26)
| | и SET NAMES 'cp1251' тоже вводите каждый раз? | |
|
|
|
|
|
|
|
для: Trianon
(21.11.2006 в 20:41)
| | А где это вводить, при создании БД? Если да то где именно, подскажите позжалуста. | |
|
|
|
|
|
|
|
для: x][x
(18.11.2006 в 23:27)
| | Все я разобрался, проблема была в том, что когда создавал базу не писал
ВСЕ ОГРОМНОЕ СПАСИБО. | |
|
|
|