Компьютерный форум
Правила
Вернуться   Компьютерный форум > Форум программистов > Веб-программирование > PHP
Перезагрузить страницу Php & Prolog, проблема с выводом кириллицы
Ответ
 
Опции темы Опции просмотра
  (#1 (permalink)) Старый
alinarh alinarh вне форума
Member
 
Сообщений: 18
Сказал(а) спасибо: 4
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 26.02.2015
По умолчанию Php & Prolog, проблема с выводом кириллицы - 26.02.2015, 01:31

Пожалуйста помогите!!!!!
В php хочу вывести строчку в прологе, содержащую русские буквы.
пытаюсь сделать это с помощью $goal = "all_facts2('Программа').";
Но он не хочет распозновать русские буквы, допустим, если я введу $goal = "all_facts2('joof').";
Он мне все выведет. Помогите,как мне справиться с этой проблемой
Ответить с цитированием
  (#2 (permalink)) Старый
Rius Rius вне форума
Программист
 
Аватар для Rius
 
Сообщений: 7,398
Сказал(а) спасибо: 22
Поблагодарили 937 раз(а) в 921 сообщениях
Регистрация: 27.08.2004
Адрес: Russian Federation
По умолчанию 26.02.2015, 07:36

А вы не пробовали кодировку менять?
Ответить с цитированием
  (#3 (permalink)) Старый
alinarh alinarh вне форума
Member
 
Сообщений: 18
Сказал(а) спасибо: 4
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 26.02.2015
По умолчанию 26.02.2015, 19:29

Rius, например на какую в файле php?
у меня стоит строчка <meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />.
Или вы , непосредственно, про сам пролог(swi-prolog)? Если да, то нет и не знаю как.
Ответить с цитированием
  (#4 (permalink)) Старый
Rius Rius вне форума
Программист
 
Аватар для Rius
 
Сообщений: 7,398
Сказал(а) спасибо: 22
Поблагодарили 937 раз(а) в 921 сообщениях
Регистрация: 27.08.2004
Адрес: Russian Federation
По умолчанию 26.02.2015, 22:38

Не, в php есть функция перекодировки:
http://php.net/manual/ru/function.iconv.php
Ответить с цитированием
  (#5 (permalink)) Старый
alinarh alinarh вне форума
Member
 
Сообщений: 18
Сказал(а) спасибо: 4
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 26.02.2015
По умолчанию 26.02.2015, 22:49

Нет, здесь с кодировкой все номально.
Он выводит echo "на русском языке"; и тому подобное и что-нибудь из пролога тоже выводит на русском языке.
в прологе написано
prolog Код:
facts('33','S', 916445).
- она выводится в php
PHP Код:
$goal = "all_facts2('S').";
и правило
prolog Код:
all_facts2(M):- findall(X:Y, facts(X,M,Y), All), write(All).
и все хорошо.
А вот строчка
prolog Код:
facts('33','Климат', 'Тропический;жаркий;влажный;более умеренный на возвышенностях').
в php
PHP Код:
$goal = "all_facts2('Климат').";
с правилом
prolog Код:
all_facts2(M):- findall(X:Y, facts(X,M,Y), All), write(All).
- НЕ ВЫВОДИТСЯ!!!!!!ПО причине того,что не может он читать слово Климат(
Ответить с цитированием
Ads.
  (#6 (permalink)) Старый
Rius Rius вне форума
Программист
 
Аватар для Rius
 
Сообщений: 7,398
Сказал(а) спасибо: 22
Поблагодарили 937 раз(а) в 921 сообщениях
Регистрация: 27.08.2004
Адрес: Russian Federation
По умолчанию 26.02.2015, 22:52

Не знаю как там с prolog взаимодействует...
У вас строка, передаваемая в пролог, или из пролога, ломает?
Ответить с цитированием
  (#7 (permalink)) Старый
alinarh alinarh вне форума
Member
 
Сообщений: 18
Сказал(а) спасибо: 4
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 26.02.2015
По умолчанию 26.02.2015, 23:03

Строка берет из пролога значения о стране (facts).
Ответить с цитированием
  (#8 (permalink)) Старый
Rius Rius вне форума
Программист
 
Аватар для Rius
 
Сообщений: 7,398
Сказал(а) спасибо: 22
Поблагодарили 937 раз(а) в 921 сообщениях
Регистрация: 27.08.2004
Адрес: Russian Federation
По умолчанию 26.02.2015, 23:11

Т.е. функция пролога возвращает что-то текстовое и непонятное?
Переведите то что там возвращается в массив байт и покажите в 16-ричном виде.
Ответить с цитированием
  (#9 (permalink)) Старый
alinarh alinarh вне форума
Member
 
Сообщений: 18
Сказал(а) спасибо: 4
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 26.02.2015
По умолчанию 26.02.2015, 23:14

В случае, когда написано на англ. языке то есть $goal = "all_facts2('S')."; S-англ.буква, то он выводит непосредственно S и её значение 1250.
А если вместо S написать какое-то русское слово, которое есть в факте в прологе, то он просто выдает пустоту... Непонятно почему.Ладно бы какие-то кракозябры выдавал
Ответить с цитированием
  (#10 (permalink)) Старый
Rius Rius вне форума
Программист
 
Аватар для Rius
 
Сообщений: 7,398
Сказал(а) спасибо: 22
Поблагодарили 937 раз(а) в 921 сообщениях
Регистрация: 27.08.2004
Адрес: Russian Federation
По умолчанию 26.02.2015, 23:17

Из поста выше видно, что у вас исходники php в windows-1251.
Перекодируйте в UTF-8 сами исходники, либо строку, передаваемую в функцию пролога.
Ответить с цитированием
  (#11 (permalink)) Старый
alinarh alinarh вне форума
Member
 
Сообщений: 18
Сказал(а) спасибо: 4
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 26.02.2015
По умолчанию 26.02.2015, 23:18

Хорошо, сейчас попробую..Надеюсь в этом проблема
Ответить с цитированием
  (#12 (permalink)) Старый
alinarh alinarh вне форума
Member
 
Сообщений: 18
Сказал(а) спасибо: 4
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 26.02.2015
По умолчанию 26.02.2015, 23:23

К сожалению, все абсолютно тоже самое
Ответить с цитированием
Ads
  (#13 (permalink)) Старый
Rius Rius вне форума
Программист
 
Аватар для Rius
 
Сообщений: 7,398
Сказал(а) спасибо: 22
Поблагодарили 937 раз(а) в 921 сообщениях
Регистрация: 27.08.2004
Адрес: Russian Federation
По умолчанию 26.02.2015, 23:23

А что именно вы сделали?
Ответить с цитированием
  (#14 (permalink)) Старый
alinarh alinarh вне форума
Member
 
Сообщений: 18
Сказал(а) спасибо: 4
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 26.02.2015
По умолчанию 26.02.2015, 23:27

1.Меняла в html кодировку на <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
2. Меняла кодировку строки.
$goal = "all_facts2('Климат').";
iconv("windows-1251", "UTF-8", $goal);
Ответить с цитированием
  (#15 (permalink)) Старый
compasses compasses вне форума
Member
 
Сообщений: 44
Сказал(а) спасибо: 1
Поблагодарили 8 раз(а) в 8 сообщениях
Регистрация: 25.02.2014
По умолчанию 26.02.2015, 23:28

Я вижу вы задали вопрос на стаковерфлоу, а пробовали с того же стаковерфлоу почитать сосдение вопросы?
н-р:
string - Prolog and php encoding - Stack Overflow
Ответить с цитированием
Ответ

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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с выводом изображения 2ramses Видеосистема 2 14.02.2013 17:38
Проблема с выводом картинки на монитор J_a_R Видеокарты 18 27.09.2011 08:29
Проблема с выводом на печать документа 2008krolik Delphi 7 08.10.2009 15:07
Проблема с выводом разрешения - Matrix XP1709 не поддерживается? Rolmek LINUX 3 05.10.2008 23:40
Проблема с выводом кирилицы в ANSI lonesomeman Вопросы начинающих программистов 6 09.01.2008 20:47
Проблема с выводом в другой фрейм Cut DHTML, JavaScript, VBScript 0 11.07.2006 10:58
Проблема с выводом текстового файла в TEXTAREA Kenny Perl 1 11.05.2006 20:12
Проблема с выводом длинных списков на SWI-прологе. Roman_Pro Prolog 1 14.11.2005 02:44
Как написать переводчик кириллицы в DOS Зирк Вопросы начинающих программистов 11 11.11.2005 23:54
Использование кириллицы в программах OKey Prolog 16 07.02.2005 12:27
Помогите ламососу!!! проблема с постраничным выводом!!! russel-shf PHP 4 06.01.2005 20:22
Проблема с выводом скрипта на ПХП Мила PHP 2 20.05.2004 13:41



Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Нardforum.ru - компьютерный форум и программирование, форум программистов