Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Кодировка windows-1251 при работе с Oracle из PHP
 
 автор: kletter   (21.05.2006 в 00:22)   письмо автору
 
 

Народ, у меня такая проблема.
Мне надо сделать интернет магазин. Тестирую его на удалённом сервере.
Когда подключаюсь к базе данных(ORACLE), у меня страницы выводятся в кодировке UTF-8.
Нужно поставить windows-1251. Никак не могу это сделать. Перепробовал всё: meta, header,
даже вручную не получается выставить через explorer.
Использую PHP, и SQL. Помогите плиз...Скоро сдавать курсовик надо...аааааааааааааааа!!!!

   
 
 автор: himic   (21.05.2006 в 07:58)   письмо автору
 
   для: kletter   (21.05.2006 в 00:22)
 

После соединения и выбора базы добавь это
должно помоч

<?php 
mysql_query 
("set character_set_client='cp1251'"); 
mysql_query ("set character_set_results='cp1251'"); 
mysql_query ("set collation_connection='cp1251_general_ci'"); 
?> 

   
 
 автор: Trianon   (21.05.2006 в 09:36)   письмо автору
 
   для: himic   (21.05.2006 в 07:58)
 

Неужели с сервером Oracle можно работать через MySql-клиент?

to kletter: Дальнейшие действия зависят от того, каким интерфейсом Вы пользуетесь, и от версии сервера, с которым соединяетесь...
Например, у функции oci_connect имеется 4-й параметр charset, который управляет кодировкой соединения с сервером Oracle 9.2 и выше.

   
 
 автор: kletter   (21.05.2006 в 13:15)   письмо автору
 
   для: Trianon   (21.05.2006 в 09:36)
 

Я общаюсь с сервером через написанную мной форму, в скрипте которой выполняются запросы. Самое обидное - это то, что в моём распоряжении не MySQL, а просто SQL. И я не знаю, как там изменить кодировку. Страница index.php выводится нормально (ради эксперимента я вывожу все записи книг из таблицы). А вот если я перехожу на другую страницу с абсолютно таким же кодом по адресу /Guest/Genres/Computers.php то ставится принудительно кодировка UTF-8. И что ещё более непонятно, если я переименовываю файл Computers.php в index.php, то всё нормально.............???.................
На сервере стоит PHP 4.1, ORACLE 9.1(вроде бы).

   
 
 автор: kletter   (21.05.2006 в 15:15)   письмо автору
 
   для: kletter   (21.05.2006 в 13:15)
 

Народ, вот что я узнал об установках на сервере:

Executing command: select * from nls_database_parameters
NLS_LANGUAGE AMERICAN
NLS_TERRITORY AMERICA
NLS_CURRENCY $
NLS_ISO_CURRENCY AMERICA
NLS_NUMERIC_CHARACTERS .,
NLS_CHARACTERSET CL8KOI8R
NLS_CALENDAR GREGORIAN
NLS_DATE_FORMAT DD-MON-RR
NLS_DATE_LANGUAGE AMERICAN
NLS_SORT BINARY
NLS_TIME_FORMAT HH.MI.SSXFF AM
NLS_TIMESTAMP_FORMAT DD-MON-RR HH.MI.SSXFF AM
NLS_TIME_TZ_FORMAT HH.MI.SSXFF AM TZR
NLS_TIMESTAMP_TZ_FORMAT DD-MON-RR HH.MI.SSXFF AM TZR
NLS_DUAL_CURRENCY $
NLS_COMP BINARY
NLS_LENGTH_SEMANTICS BYTE
NLS_NCHAR_CONV_EXCP FALSE
NLS_NCHAR_CHARACTERSET UTF8
NLS_RDBMS_VERSION 9.2.0.6.0


Вот у них и стоит UTF8 в предпоследней строке. Вероятно это из за этого у меня ставится UTF8.
Теперь такой вопрос: можно каким либо образом конвертировать все что идёт из базы данных в нужную кодировку? (изменять парамерты NLS я не могу, нет прав). Iconv не работает, видимо он там не установлен.
Или как нибудь сказать серверу, что бы он мне выводил в 1251?

   
 
 автор: kletter   (21.05.2006 в 15:37)   письмо автору
 
   для: Trianon   (21.05.2006 в 09:36)
 

>Неужели с сервером Oracle можно работать через MySql-клиент?
>
>to kletter: Дальнейшие действия зависят от того,
>каким интерфейсом Вы пользуетесь, и от версии сервера, с
>которым соединяетесь...
>Например, у функции oci_connect имеется 4-й параметр
>charset, который управляет кодировкой соединения с сервером
>Oracle 9.2 и выше.

К сожалению я не могу использовать четвёртый параметр, т.к. версия ORACLE 9.1, а для этого тербуется как минимум 9.2

   
 
 автор: kletter   (21.05.2006 в 16:02)   письмо автору
 
   для: kletter   (21.05.2006 в 15:37)
 

У меня все- таки главный вопрос:
Какого хрена ORACLE мне выставляет UTF8 так, что я не могу её поменять, и как это можно обойти?

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования