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

Форум PHP

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

 

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

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: кодировки!?...

Сообщения:  [1-10]   [11-17] 

 
 автор: antf   (14.03.2005 в 21:22)   письмо автору
 
   для: servannin   (14.03.2005 в 14:59)
 

Я думаю, что вам сначала нужно найти фрагмент кода, который превращает сами символы в их коды, а потом подумать чем его можно заменить. Проверяйте содержимое строки или другой переменной после каждой операции над ней (перекодирования) и вы его найдете

   
 
 автор: servannin   (14.03.2005 в 14:59)   письмо автору
 
   для: glsv (Дизайнер)   (14.03.2005 в 14:51)
 

У меня вот такие функции кодировок:

<?php ## Функции перевода строк из кодировки WINDOWS-1251 в UTF-8 и обратно
setlocale(LC_ALL,"ru_RU.CP1251");
define('Encoding','WINDOWS-1251');
define ('XMLHead',"<?xml version='1.0' encoding='".Encoding."'?>");

function utf8encode($str,$encode=Encoding)
{
return iconv($encode,'UTF-8',$str);
}

function utf8decode($str,$encode=Encoding)
{
return iconv('UTF-8',$encode,$str);
}
?>

   
 
 автор: glsv (Дизайнер)   (14.03.2005 в 14:51)   письмо автору
 
   для: servannin   (14.03.2005 в 13:57)
 

А что у вас за функция utf8decode()? Это ваша собственная функция?
В php есть функция utf8_decode()

   
 
 автор: servannin   (14.03.2005 в 13:57)   письмо автору
 
   для: servannin   (14.03.2005 в 13:43)
 

Сейчас код выглядит так :
<?php
$dom->formatOutput=true;
if ($node !== $dom){
$asd=htmlspecialchars(utf8decode($dom->saveXML($node)));
$asd=str_replace('&amp;#', '&#', $asd);
echo $asd;
$file="textfile.txt";
if(file_exists($file))
{
$fp = fopen ($file,"w");
$asd=utf8decode($dom->saveXML($node));
fwrite($fp,$asd);
fclose($fp);
}}
//else
//$asd=htmlspecialchars($dom->saveXML());
//echo $asd;
?>
и выводит так:

<Рисунки>
<строка>&#x443;&#x43A;&#x430;&#x437;&#x430;&#x43D; &#x433;&#x440;&#x430;&#x444;&#x438;&#x447;&#x435;&#x441;&#x43A;&#x438;&#x439; xml-&#x444;&#x430;&#x439;&#x43B;1 &#x434;&#x43B;&#x44F; &#x432;&#x441;&#x442;&#x430;&#x432;&#x43A;&#x438;</строка>
<строка>&#x4
А как содержание сделать , то есть значения <строк>
чего то не могу....

   
 
 автор: servannin   (14.03.2005 в 13:43)   письмо автору
 
   для: antf   (14.03.2005 в 03:34)
 

Я потихоньку схожу с ума , ... ничего не выходит! ((Есть Бог на этом свете или нет?

   
 
 автор: antf   (14.03.2005 в 03:34)   письмо автору
 
   для: servannin   (14.03.2005 в 00:34)
 

1) Почему в браузере все нормально, а в файле - иероглифы? Потомучто в процессе ваших преобразований все без исключения символы были заменены на html код символа. Браузер их отображает (взгляните на код), а текстовой редактор все отображает как есть. Нужно найти то место, где происходит перекодировка и устранить это. Я с данным расширением PHP не работал, поэтому ничем помочь не смогу, да и шрифты Unicode у меня не установлены.
2) Методом тыка попробуйте:
<?
  $asd
=htmlspecialchars(utf8_decode($dom->saveXML($node)), ENT_COMPATUTF-8);
  
?>

   
 
 автор: servannin   (14.03.2005 в 00:34)   письмо автору
 
   для: servannin   (13.03.2005 в 21:33)
 

Так что, кто нибудь поможет???

   
 
 автор: servannin   (13.03.2005 в 21:33)   письмо автору
 
   для: antf   (13.03.2005 в 20:57)
 

Всем спасибо за помощь, в особенности antf'у.
В браузере сейчас отображается просто отлично, но ,к сожалению, в файл записывается похожая чушь ...
Например, вот это:

<Рисунки>
<строка>указан графический xml-файл1 для вставки</строка>
<строка>указан графический xml-файл2 для вставки</строка>
</Рисунки>

отображается как:

&lt;Рисунки&gt;
&lt;строка&gt;&#x443;&#x43A;&#x430;&#x437;&#x430;&#x43D; &#x433;&#x440;&#x430;&#x444;&#x438;&#x447;&#x435;&#x441;&#x43A;&#x438;&#x439; xml-&#x444;&#x430;&#x439;&#x43B;1 &#x434;&#x43B;&#x44F; &#x432;&#x441;&#x442;&#x430;&#x432;&#x43A;&#x438;&lt;/строка&gt;
&lt;строка&gt;&#x443;&#x43A;&#x430;&#x437;&#x430;&#x43D; &#x433;&#x440;&#x430;&#x444;&#x438;&#x447;&#x435;&#x441;&#x43A;&#x438;&#x439; xml-&#x444;&#x430;&#x439;&#x43B;2 &#x434;&#x43B;&#x44F; &#x432;&#x441;&#x442;&#x430;&#x432;&#x43A;&#x438;&lt;/строка&gt;
&lt;/Рисунки&gt;

Я делаю это так(это версия пока пробная , так что на довольно простой код внимания не обращайте... 8-)) :

$dom->formatOutput=true;
if ($node !== $dom){
$asd=utf8decode(htmlspecialchars($dom->saveXML($node)));

$asd=str_replace('&amp;#', '&#', $asd);

echo $asd;

$file="textfile.txt";

if(file_exists($file))
{
//$k1="asdfgdsfgd";
$fp = fopen ($file,"w");
fwrite($fp,$asd);
fclose($fp);
}}

Не могу пока понять где ошибка???

   
 
 автор: antf   (13.03.2005 в 20:57)   письмо автору
 
   для: antf   (13.03.2005 в 20:50)
 

Я в таком случае пишу функцию

<?
  
//Убирает то безобразие, которое функция htmlspecialchars() натворила с национальными символами немецкого и франц. языка
  
function ConvertBack($Str)
  {
   
$Str=str_replace('&amp;#''&#'$Str);
   return(
$Str);
  }
?>


А вообще мне сказали, что причина такого безобразия - несовпадение кодировки сервера и компьютера клиента. У меня такая проблема возникает на франкоязычных форумах.

   
 
 автор: antf   (13.03.2005 в 20:50)   письмо автору
 
   для: glsv (Дизайнер)   (13.03.2005 в 20:26)
 

А вы попробуйте скопировать из режима просмотра html кода, а не прямо из окна браузера. (Дизайнеру)

   

Сообщения:  [1-10]   [11-17] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

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