Вернуться   Программирование для SEO » Программирование » Perl
Ответ
 
Опции темы Опции просмотра
  #1  
Старый 10.08.2009, 19:13
Аватар для Asf
Asf Asf вне форума
Новичок
 
Регистрация: 10.08.2009
Сообщений: 5
Asf на пути к лучшему
По умолчанию Проблема с юникодом

есть такой код
Цитата:
use strict;
use utf8;
use dbi;
....
My $dbh = dbi->connect....
$dbh->do("set names utf8");
$sth = $dbh->prepare("select a from b where c=1");
$sth->execute;
$a = $sth->fetchrow_array();
print "русская строка из базы данных: $a";
проблема в том, что строка, которую мы считали из базы, выведется иероглифами
__________________
Не говорите, что мне надо делать, и я не скажу, куда вам идти…
Ответить с цитированием
  #2  
Старый 12.05.2010, 23:18
ovr ovr вне форума
Новичок
 
Регистрация: 12.05.2010
Сообщений: 2
ovr на пути к лучшему
По умолчанию

ну пробуй соотвественно:

set names cp1251
set names koi8r

либо скриншот иероглифов.
Ответить с цитированием
  #3  
Старый 13.05.2010, 11:27
Аватар для coder
coder coder вне форума
Новичок
 
Регистрация: 12.05.2010
Адрес: Москва
Сообщений: 10
coder на пути к лучшему
По умолчанию

Перед конкатенацией строки из базы данных необходимо ее переконвертировать функцией Encode::decode('utf8',$string);
Ответить с цитированием
  #4  
Старый 13.05.2010, 17:11
Аватар для Студент
Студент Студент вне форума
Новичок
 
Регистрация: 12.05.2010
Адрес: Питер
Сообщений: 6
Студент на пути к лучшему
По умолчанию

Я думаю, данная проблема возникает, если база данных или сопоставление таблиц не соответствует кодировке: utf8_general_ci

Для решения данной проблемы сделайте следуюее:

- Очистите базу данных.
- Через phpMyAdmin выполните следующий запрос:

Код:
ALTER DATABASE `baza_dannyh`  DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
Ответить с цитированием
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Часовой пояс GMT +3, время: 09:35.