PDA

Просмотр полной версии : Русский.....и UTF8


Alexcid
19.10.2006, 13:47
На сколько я понял из прочитанных тем форума эта тема поднималась уже миллион раз. Но из того что прочитал, я к сожалению не нашел ответа.

Проблема у меня такая:
есть Мускул, в нем БД создана вот так:
create database mydb character set 'utf8' collate utf8_unicode_ci;в этой базе есть таблица:
create table mytable (.....) ENGINE=InnoDB DEFAULT CHARSET=utf8;

Далее запущен сервер Mongrel для Руби на Рельсах. В проекте используется
weborb для RPC, когда я вывожу данные в Flex в DataGrid, они отображаются
вот так: ????. И в чем проблема? А? :(

etc
19.10.2006, 13:52
В кодировке, вероятно =)

Alexcid
19.10.2006, 13:56
Ок :), хороший ответ, тада скажу еще данные вгонял так:
insert into mytable values(1,0,CONVERT(_cp1251'Строка' USING utf8));

etc
19.10.2006, 14:02
Ты проверь на выходе, браузером, какая конкретно кодировка.
И ответ сервера в заголовке, может там Content-Type неверный, точнее сам контент в одной кодировке, а в Content-Type указана другая.

Alexcid
19.10.2006, 14:16
Провел следующий эксперимент, решил просто сделать вывод XML на страницу, при чем без использования WebOrb, а на прямую типа http://localhost:3004/http/explore_db/. Получил следующее:
products name="Root" directory="true" id="1">
<product name="?????-????????? " directory="true" id="2">
<product name="????? OSB-3 " directory="false" id="283"/>
..... и т.д.посмотрел инфу страницы: Кодировка: UTF8
У меня ступор? пока :)

etc
19.10.2006, 15:30
Ну ищи косяк в серверной части тогда.

iNils
19.10.2006, 15:35
Alexcid, куски любого кода надо оформлять в теги .

Alexcid
19.10.2006, 16:33
Все разобралси, действительно проблема на сервере, пишу солюшн для тех кто юзает Rails, в application.rb (в контроллере) написать:

before_filter :configure_charsets
def configure_charsets
headers["Content-Type"] = "text/html; charset=utf-8"
ActiveRecord::Base.connection.execute 'SET NAMES UTF8'
end

etc
19.10.2006, 16:41
Ну, собственно, я про это и говорил, что сервер в заголовке возвращает не ту кодировку.