Re: Знаки вопроса вместо русских символов.
Странно... обычная выборка с нормальной кодировкой отображается...
Но когда юзаю Propel то косяки... выходит он сам меняет что ли кодировку?
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Форум PHP-MyAdmin.RU → Установка phpMyAdmin → Знаки вопроса вместо русских символов.
Странно... обычная выборка с нормальной кодировкой отображается...
Но когда юзаю Propel то косяки... выходит он сам меняет что ли кодировку?
Feniksss
Чтобы узнать кодировку соединения с MySQL выполните запрос:
SHOW GLOBAL VARIABLES LIKE 'char%';
Текущую кодировку соединения можно увидеть убрав из запроса GLOBAL.
Конкретно про Propel ничего сказать не могу, не пользовался. Думаю возможность задания кодировки соединения с MySQL быть должна.
И еще один момент: не используйте root.
На этой странице есть пример файла runtime-conf.xml.
http://propel.phpdb.org/trac/wiki/Users … untimeConf
Обратите внимание на <setting id="charset">utf8</setting>. Судя по всему здесь выставляется кодировка соединения с MySQL.
Ура! )))
Да, совершенно верно, кодировка задаётся именно там, НО это только при генерации классов для работы с БД.
Если классы уже созданы, то в файле конфигурации к этим классам надо прописать что-то типа:
'settings' =>
array(
'charset' => array(
'value' =>'utf8',
),
),
Вот... и всё работает! Спасибо большое Hanut!!! Респект и уважуха, как говорится. Кстати говоря я очень удивлён оперативностью и грамотностью ответов! Потому что эту проблему я отразил ещё на 2 программерских форумах, где на одном последовала тупость какая-то в ответ. На др. вообще ничего не сказали
Всем добрый вечер!!!
Хочу попросить у Вас помощи, особенно у Hanut!
Читал проблему jeck111, у меня подобная проблема, но только я ламер если не хуже...
У меня нет сайта но я хочу его создать, вот купил диск с видеоуроками по php, дошел до темы БД, и возникла проблема:
создал в phpmyadmin простую базу данных, в ней создал простую таблицу, потом создал тренировочный фаил,
и попытался вывести данные из таблици, при открываний его через браузер выводися "?????"!
Что делать, пожалуйста помогите!!!
Заранне спасибо!!!
PiratXXX
Если страницы вашего сайта в кодировке windows-1251, то обязательно проверьте, чтобы сравнения таблиц и БД было cp1251_general_ci. Так же необходимо установить кодировку соединения скриптов с MySQL, для чего после функции mysql_connect следует добавить строку:
mysql_query('SET NAMES cp1251');
PiratXXX
Если страницы вашего сайта в кодировке windows-1251, то обязательно проверьте, чтобы сравнения таблиц и БД было cp1251_general_ci. Так же необходимо установить кодировку соединения скриптов с MySQL, для чего после функции mysql_connect следует добавить строку:mysql_query('SET NAMES cp1251');
Спасибо, проблема почти решилась как бы сама собой, я толком и не понял может глюк какой был!
Вобщем я пересоздал ту таблицу, и теперь информация из БД (из этой таблици) вытягивается нормально(на русском),
но теперь возникла новая проблема!
Вот код страници (на всякий случай):
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>
<body>
<?php
$db = mysql_connect("localhost","pirat","0126377");
mysql_query('SET NAMES cp1251');
mysql_select_db ("firstbd",$db);
$result = mysql_query("SELECT * FROM firma",$db);
$myrow = mysql_fetch_array($result);
echo $myrow["dol"];
do
{
echo "Сотрудник N - ".$myrow["id"]."<br>";
echo $myrow['name']."<br>";
echo $myrow['lastname']."<br>";
echo $myrow['dol']."<br>";
}
while ($myrow = mysql_fetch_array($result));
?>
</body>
</html>
И дело в том, что при открывании через браузер, вместо"Сотрудник N - "
выводится "Сотрудник N - "...
Еще несколько вопросов:
1. Где посмотреть и изменить кодировку страниц? (Я работаю через Adobe Dreamweaver CS3 ).
2. Где глянуть сравнение таблиц и БД и изменять? (Я работаю в Денвер 2)
Это, чтобу на следуйщий раз не возникало глупых вопросов...
Облазил эти две проги и не нашел где все это менять (я или слепой или ...)
Зараннее спасибо! Извени за глупые вопросы!!!
Этот метатег означает, что вы создаете страницу в кодировке utf-8.
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
Следовательно необходимо сменить сравнения таблиц на utf8_general_ci, а кодировку соединения с MySQL установить в utf8.
mysql_query('SET NAMES utf8');
1) Чтобы сменить кодировку страниц необходимо исправить метатег и сменить собственно кодировку страницы. Как это сделать в Dreamweaver я не знаю.
2) Откройте phpMyAdmin, выберите базу данных и перейдите на страницу операций, снизу будет выпадающий список для выбора изначального сравнения для вновь создаваемых таблиц данной БД. Для смены сравнения таблицы, выберите ее и перейдите на страницу операций, где в блоке "Параметры таблицы" смените сравнение.
Менять сравнения таблиц можно только на пустых таблицах, в которых нет данных, иначе данные будут испорчены.
Огромное спасибо, за помощь и понимание!!!!!!!!
Блин вот это фигня, до этого создавал php файлы и всю информацию выводил в браузере как надо,
а теперь как связался с БД, из нее выводит как надо(текст),
а текст который выводишь прямо из файла иероглифами(и только русский, а англ. нормально)...
Ну, ладно еще раз спасибо!!!!
Буду разбиратся...
Кодировка базы в latin1_swedish_ci .При забивке контента на сайт вместо кирилицы отображаются ????????
При SQL запросе SHOW GLOBAL VARIABLES LIKE 'char%'; получаем:
Variable_name Value
character_set_client latin1
character_set_connection latin1
character_set_database latin1
character_set_filesystem binary
character_set_results latin1
character_set_server latin1
character_set_system utf8
character_sets_dir /usr/share/mysql/charsets/
При SQL запросе: mysql_query('SET NAMES cp1251'); или mysql_query('SET NAMES UTF8'); получаем :You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'mysql_query('SET NAMES utf8')' at line 1
Что можно сделать для отображения кириллицы на страницах сайта?
USAN
Установите сравнение таблиц в необходимую вам кодировку. Если страницы скрипта в windows-1251, nо таблицы должны быть в cp1251_general_ci.
Сравнение таблиц можно установить с помощью phpMyAdmin, на странице операций.
#1007 - Can't create database 'mctbm?4973763?72019'; database exists. После сравнения таблиц.
#1007 - Can't create database 'mctbm?4973763?72019'; database exists. После сравнения таблиц.
Я ничего не понял из этого сообщения.
Кодировка базы в latin1_swedish_ci .При забивке контента на сайт вместо кирилицы отображаются ????????
При SQL запросе SHOW GLOBAL VARIABLES LIKE 'char%'; получаем:
Variable_name Value
character_set_client latin1
character_set_connection latin1
character_set_database latin1
character_set_filesystem binary
character_set_results latin1
character_set_server latin1
character_set_system utf8
character_sets_dir /usr/share/mysql/charsets/
При SQL запросе: mysql_query('SET NAMES cp1251'); или mysql_query('SET NAMES UTF8'); получаем :You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'mysql_query('SET NAMES utf8')' at line 1
такая же беда......((((
Установите сравнение таблиц в необходимую вам кодировку. Если страницы скрипта в windows-1251, nо таблицы должны быть в cp1251_general_ci.
Сравнение таблиц можно установить с помощью phpMyAdmin, на странице операций.
Не помогло.......
даже еще когда после набора в админке и при сохранении-появляется сразу
При SQL запросе: mysql_query('SET NAMES cp1251'); или mysql_query('SET NAMES UTF8'); получаем :You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'mysql_query('SET NAMES utf8')' at line 1
mysql_query('SET NAMES UTF8');
Это в php скрипт прописывается - а не SQL запрос в PMA, SQL запрос выглядит просто SET NAMES UTF8.
После исправления базы структуры, возможно данные в таблицай уже битые и нужно коректно ввести новые.
При SQL запросе: mysql_query('SET NAMES cp1251'); или mysql_query('SET NAMES UTF8'); получаем :You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'mysql_query('SET NAMES utf8')' at line 1
mysql_query('SET NAMES UTF8');
Это в php скрипт прописывается - а не SQL запрос в PMA, SQL запрос выглядит просто SET NAMES UTF8.
После исправления базы структуры, возможно данные в таблицай уже битые и нужно коректно ввести новые.
почему так то?------Кодировка базы в latin1_swedish_ci .При забивке контента на сайт вместо кирилицы отображаются ????????
и что нужно сделать,чтоб все исправить.....если можно поподробнее......пожалуйста......
почему так то?------Кодировка базы в latin1_swedish_ci
Это из-за настроек MySQL сервера, если у вас нет доступа к конфигурационному файлу MySQL, то глобально данный параметр поменять нельзя, но можно добиться, чтобы все работало следующим образом:
1) Если кодировка сайта windows-1251, то кодировка базы данных и таблиц должна быть cp1251; сравнение должно быть cp1251_general_ci.
2) В файлах скрипта необходимо найти вхождение функции mysql_connect и сразу после нее добавить строку:
mysql_query('SET NAMES cp1251');
3) В корне хоста создать файл .htaccess и добавить в него строку:
PHP_VALUE default_charset windows-1251
Если данные в БД уже есть, то надо проверить в каком виде они там находятся. Смотреть данные и кодировку таблиц надо в phpMyAdmin.
Очень долго мучилась с отображением русских символов в java.
Ответ нашла здесь: http://hashcode.ru/questions/153328/jav … х-символов
Надеюсь это кому-то тоже поможет.
Здравствуйте. Тоже проблема с отображением ?????????? вместо имени.
Кодировка базы utf8_general_ci
Вот пример php:
<?php
App::uses('UsersAppModel', 'Users.Model');
/**
* Discussion Model
*
* @property Categories.Category $Categories.Category
*/
class User extends UsersAppModel {
public $useTable = 'customer';
function afterFind($results) {
foreach ($results as $key => $val) {
$results[$key]['User']['id'] = $val['User']['customer_id'];
unset($results[$key]['User']['customer_id']);
$results[$key]['User']['group_id'] = $val['User']['customer_group_id'];
unset($results[$key]['User']['customer_group_id']);
$results[$key]['User']['username'] = $val['User']['email'];
$results[$key]['User']['type'] = 'user';
}
return $results;
}
}
Строчку
$results[$key]['User']['username'] = $val['User']['email'];
Заменил на
$results[$key]['User']['username'] = $val['User']['firstname'];
В итоге получил ?????????? вместо русских букв
Есть идеи как поправить?
Заранее спасибо!
В итоге получил ?????????? вместо русских букв
Проверьте кодировку файла скрипта, возможно она сбилась. Замена переменной вряд ли могла что-то изменить в подключении к БД.
Проверьте кодировку файла скрипта, возможно она сбилась. Замена переменной вряд ли могла что-то изменить в подключении к БД.
Всмысле сам php?
Всмысле сам php?
Кодировка файла скрипта. Сам .php файл. Если открыть в Notepad++, то в статусной строке можно увидеть UTF8 или ANSI.
Кодировка файла скрипта. Сам .php файл. Если открыть в Notepad++, то в статусной строке можно увидеть UTF8 или ANSI.
Поменял кодировку на UTF8, было ANSI as UTF8, но теперь ошибка такого плана.
Warning (2): session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /home/site.ru/forum/app/Plugin/Users/Model/User.php:1) [APP/Plugin/Users/Controller/Component/MembersessionComponent.php, line 14]
В файле MembersessionComponent.php в 14 строке находится
session_start();
Пробовал этот файл тоже перекодировать, но ничего не изменилось.
Добавил в MembersessionComponent.php строчку <?ob_start();?> ошибка пропала, но русские буквы не видны. Так же ???????
было ANSI as UTF8
Это правильно. Теперь верните кодировку перекодировав в UTF8 без бом байта. Это уберет проблему с сессиями.
По вопросикам давайте разбираться с самого начала. В phpMyAdmin видна кириллица? Вы ее можете прочитать?
По вопросикам давайте разбираться с самого начала. В phpMyAdmin видна кириллица? Вы ее можете прочитать?
Она видна в phpMyAdmin нормально.
Она видна в phpMyAdmin нормально.
В Мета теге HTML страницы указана кодировка utf-8?
Форум PHP-MyAdmin.RU → Установка phpMyAdmin → Знаки вопроса вместо русских символов.
Форум работает на PunBB, при поддержке Informer Technologies, Inc
Currently installed 7 official extensions. Copyright © 2003–2009 PunBB.