Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: кодировка

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (2): [1] 2 »   

> Описание: Русские буквы превращаются в знаки вопроса
karamba
Отправлено: 01 Декабря, 2010 - 11:12:33
Post Id



Гость


Покинул форум
Сообщений всего: 86
Дата рег-ции: Сент. 2010  


Помог: 0 раз(а)




Делаю insert в таблицу и если до этого делаю mysql_query('SET NAMEs cp1251') или mysql_query('SET NAMES utf8'), то вместо русских букв (я смотрю в phpmyadmin) появляются знаки вопроса, а если вообще не устанавливать кодировку, то появляются кракозяблики...
 
 Top
DeepVarvar Супермодератор
Отправлено: 01 Декабря, 2010 - 11:21:42
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




karamba исполняемые файлы должны быть тоже в "одинаковой" кодировке с генерируемыми ими страницами и базой.
 
 Top
karamba
Отправлено: 01 Декабря, 2010 - 11:52:35
Post Id



Гость


Покинул форум
Сообщений всего: 86
Дата рег-ции: Сент. 2010  


Помог: 0 раз(а)




DeepVarvar пишет:
karamba исполняемые файлы должны быть тоже в "одинаковой" кодировке с генерируемыми ими страницами и базой.

простите. а как узнать в какой кодировке мои фалы php и в какой кодировке у меня база?
 
 Top
ALEN
Отправлено: 01 Декабря, 2010 - 11:59:12
Post Id



Участник


Покинул форум
Сообщений всего: 1459
Дата рег-ции: Авг. 2008  
Откуда: Крым


Помог: 11 раз(а)




Скажу так нужно, что было:
в одной кодировке файл, в одной кодировке создаваться таблицы, в той же работать с ними - иначе будет лажа.

Раньше были проблемы с тем, что при переносе на другой сервер проблемы с кодировкой начинались - вот поэтому нужно всегда указывать явную.

ВЕЗДЕ ГДЕ МОЖНО УКАЗАТЬ КОДИРОВКУ - ВЕЗДЕ УКАЗЫВАЙТЕ!

karamba
используйте notepad2 версию на английском языке - это именно то, что вам нужно сейчас.
 
 Top
karamba
Отправлено: 01 Декабря, 2010 - 12:39:09
Post Id



Гость


Покинул форум
Сообщений всего: 86
Дата рег-ции: Сент. 2010  


Помог: 0 раз(а)




ALEN пишет:
Скажу так нужно, что было:
в одной кодировке файл, в одной кодировке создаваться таблицы, в той же работать с ними - иначе будет лажа.


ВЕЗДЕ ГДЕ МОЖНО УКАЗАТЬ КОДИРОВКУ - ВЕЗДЕ УКАЗЫВАЙТЕ!

karamba
используйте notepad2 версию на английском языке - это именно то, что вам нужно сейчас.

я скачал notpad2 там нет кодировки cp1251, там есть ANSI1251.
Когда я создаю таблицу я указываю cp1251 и когда делаю insert указываю cp1251.

Как разобраться, а что то не понимаю. Может надо другую какую то кодировку указывать?
 
 Top
ALEN
Отправлено: 01 Декабря, 2010 - 12:45:51
Post Id



Участник


Покинул форум
Сообщений всего: 1459
Дата рег-ции: Авг. 2008  
Откуда: Крым


Помог: 11 раз(а)




karamba
а для работы с базой установить не хочешь? и хедери отправлять
 
 Top
karamba
Отправлено: 01 Декабря, 2010 - 13:37:56
Post Id



Гость


Покинул форум
Сообщений всего: 86
Дата рег-ции: Сент. 2010  


Помог: 0 раз(а)




ALEN пишет:
karamba
а для работы с базой установить не хочешь? и хедери отправлять

можно поподробнее....как установить для работы с базой и что такое хедери
 
 Top
DeepVarvar Супермодератор
Отправлено: 01 Декабря, 2010 - 13:42:39
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




Хедери (Ы) это такие блошки, от которых все время чесаться охота )))))
PHP:
скопировать код в буфер обмена
  1. <?PHP header('Content-Type: text/html; charset=windows-1251'); ?>

(Добавление)
 
 Top
karamba
Отправлено: 01 Декабря, 2010 - 15:49:30
Post Id



Гость


Покинул форум
Сообщений всего: 86
Дата рег-ции: Сент. 2010  


Помог: 0 раз(а)




Я зашел в структуры таблицы через phpmyadmin там есть поле "сравнение" - там выбор кодировок и по-умолчанию там стоит latin1_swedish_ci. Из cp1251 я там вручную поставил cp1251-bin ( cp1251cyr или rus там нет) , после этого нормально записалось по-русски.
Как мне в сценарии написать чтобы он по-умолчанию создавал эти поля с "сравнением" cp1251-bin?
(Добавление)
Чё то мне сразу в голову не пришло...он же скрипт формирует, там я и подсмотрел
PHP:
скопировать код в буфер обмена
  1. CREATE TABLE `total`.`too` (
  2. `id` INT NOT NULL ,
  3. `text` TEXT CHARACTER SET cp1250 COLLATE cp1250_bin NOT NULL ,
  4. `p` TEXT NOT NULL
  5. ) ENGINE = MYISAM CHARACTER SET cp1250 COLLATE cp1250_bin;


Я пока не знаю как именно нужно указывать, у каждого поля в отдельности или ENGINE у всей таблицы.
 
 Top
DeepVarvar Супермодератор
Отправлено: 01 Декабря, 2010 - 15:58:39
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




karamba пишет:
cp1251-bin

Не надо использовать эту хрень (хотя для разных вещей свое нужно) - юзай cp1251_general_ci оно универсально на всю латину и регистронезависимо
Создавать табули так:
CODE (SQL):
скопировать код в буфер обмена
  1. CREATE TABLE `table` (
  2.                 `id` INT AUTO_INCREMENT NOT NULL,
  3.                 `name` CHAR(15),
  4.                 `time` DATETIME NOT NULL,
  5.                 PRIMARY KEY ( `id` )
  6.                 )
  7.         ENGINE = MYISAM ;

(Добавление)
Вот просто создаешь БД а все табули в ней будут цеплять её кодировочные атрибуты
CODE (SQL):
скопировать код в буфер обмена
  1. CREATE DATABASE `dbname` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci ;

Смени на нужное тебе...
 
 Top
karamba
Отправлено: 01 Декабря, 2010 - 16:14:32
Post Id



Гость


Покинул форум
Сообщений всего: 86
Дата рег-ции: Сент. 2010  


Помог: 0 раз(а)




Достаточно добавить в конце при создании таблицы
PHP:
скопировать код в буфер обмена
  1. ENGINE = MYISAM CHARACTER SET cp1251 COLLATE cp1251_bin;


и потом перед insert установить кодировку


И всё нормально работает
(Добавление)
Цитата:
Не надо использовать эту хрень (хотя для разных вещей свое нужно) - юзай cp1251_general_ci оно универсально на всю латину и регистронезависимо


cp1251_general_ci - в таблице такую кодировку получилось установить, но
не проходит

(Отредактировано автором: 01 Декабря, 2010 - 16:15:15)

 
 Top
DeepVarvar Супермодератор
Отправлено: 01 Декабря, 2010 - 16:23:51
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




karamba пишет:
Достаточно добавить в конце при создании таблицы

А я говорю что ДОСТАТОЧНО не в каждой таблице добавлять ЭТО, а всего лишь ОДИН РАЗ при создании базы... Согласись так лучше???
(Добавление)
karamba пишет:
не проходит

 
 Top
karamba
Отправлено: 01 Декабря, 2010 - 16:30:42
Post Id



Гость


Покинул форум
Сообщений всего: 86
Дата рег-ции: Сент. 2010  


Помог: 0 раз(а)




Цитата:
А я говорю что ДОСТАТОЧНО не в каждой таблице добавлять ЭТО, а всего лишь ОДИН РАЗ при создании базы... Согласись так лучше???

Да конечно так лучше, спасибо
Но когда я ставлю в таблице кодировку
и перед insert ставлю , то записываются знаки вопроса.

(Отредактировано автором: 01 Декабря, 2010 - 16:31:20)

 
 Top
DeepVarvar Супермодератор
Отправлено: 01 Декабря, 2010 - 16:34:54
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




karamba пишет:
и перед insert ставлю

Перед каждым чтоли??? Не понял
 
 Top
karamba
Отправлено: 01 Декабря, 2010 - 16:37:22
Post Id



Гость


Покинул форум
Сообщений всего: 86
Дата рег-ции: Сент. 2010  


Помог: 0 раз(а)




DeepVarvar пишет:
karamba пишет:
и перед insert ставлю

Перед каждым чтоли??? Не понял


Зачем перед каждым?? Просто один раз и всё. Но говорю же в таблице появляются знаки вопроса
 
 Top
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« SQL и Архитектура БД »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB