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

Форум PHP

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

 

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

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

тема: Кодировка кракозяблы
 
 автор: sl1p   (16.02.2011 в 17:27)   письмо автору
 
 

Оттыканная тема, но хоть убей ничего не получается.

Поцкажите что это за кодировка?)

ÎÎΠ"Àâèòåõ", Çàïîðîæüå



Возможно кто подскажет, ктото пользовался?
php-excel-reader 
PHP Excel Reader - Parse and retrieve information from XLS files


не корректно выдаёт прочитанный XLS файл..

Какимто боком можно узнать в какой кодировке текст?

  Ответить  
 
 автор: sim5   (16.02.2011 в 17:45)   письмо автору
 
   для: sl1p   (16.02.2011 в 17:27)
 

Это юникод
<?
$s 
'&#206;&#206;&#206; "&#192;&#226;&#232;&#242;&#229;&#245;",
 &#199;&#224;&#239;&#238;&#240;&#238;&#230;&#252;&#229;'
;
echo 
html_entity_decode($sENT_NOQUOTES'windows-1251');

  Ответить  
 
 автор: Trianon   (16.02.2011 в 17:51)   письмо автору
 
   для: sim5   (16.02.2011 в 17:45)
 

Представляется мне, что Это ни разу не юникод. Ну только внешне.
Это результат искажения при вставке чужой кодировки в поле страницы 1251

  Ответить  
 
 автор: sim5   (16.02.2011 в 18:01)   письмо автору
 
   для: Trianon   (16.02.2011 в 17:51)
 

Ну да, от "внешнего" и сказал, кириллица в Юникоде выше, это html-представления, тобишь "искажения" )

  Ответить  
 
 автор: sl1p   (16.02.2011 в 18:19)   письмо автору
7.3 Кб
 
   для: sim5   (16.02.2011 в 18:01)
 

прошу прощения, таки да, это при вставке на форум пошло искажение.. И Ваш совет не помог, к сожалению...

прилагаю скрин того что выводится:

  Ответить  
 
 автор: sim5   (16.02.2011 в 18:21)   письмо автору
 
   для: sl1p   (16.02.2011 в 18:19)
 

То что я написал, выведет: ООО "Авитех", Запорожье. А вы как я полагаю в UTF работаете? Значит вам надо еще 1251 в utf перевести.

  Ответить  
 
 автор: sl1p   (16.02.2011 в 18:23)   письмо автору
 
   для: sim5   (16.02.2011 в 18:21)
 

да работаю в ютф..

это то что выводит исходный код прилоежния выше..
&Icirc;&Icirc;&Icirc; &quot;&Agrave;&acirc;&egrave;&ograve;&aring;&otilde;&quot;, &Ccedil;&agrave;&iuml;&icirc;&eth;&icirc;&aelig;&uuml;&aring;



а каким образом перевести?.. вернее в каком по логике месте кода?



попробовал так:
<?$val iconv('CP1251''UTF-8'$val);
$val html_entity_decode($valENT_NOQUOTES'windows-1251');


не получается.

  Ответить  
 
 автор: sim5   (16.02.2011 в 18:29)   письмо автору
 
   для: sl1p   (16.02.2011 в 18:23)
 

После преобразования html-пердставления надо в utf переводить, а не до:
<?
$s 
'&#206;&#206;&#206; "&#192;&#226;&#232;&#242;&#229;&#245;", 
 &#199;&#224;&#239;&#238;&#240;&#238;&#230;&#252;&#229;'

$s =iconv('CP1251''UTF-8'html_entity_decode($sENT_NOQUOTES'windows-1251'));
header('Content-type: text/html; charset=utf-8');
echo 
$s;
Проверяйте.

  Ответить  
 
 автор: sl1p   (16.02.2011 в 18:34)   письмо автору
 
   для: sim5   (16.02.2011 в 18:29)
 

теперь вообще пустая строка.

Возможно проблема в этом?
Если смотреть исходный код то там не кракозяблы.. а:

&Icirc;&Icirc;&Icirc; &quot;&Agrave;&acirc;&egrave;&ograve;&aring;&otilde;&quot;, &Ccedil;&agrave;&iuml;&icirc;&eth;&icirc;&aelig;&uuml;&aring;

(ещё раз повторюсь что строка которую вы используете для теста получилась только на форуме, у меня же её близко нет)

Тут же переводить нечего.. Это мне отдаёт сторонний класс работы с XLS.. Возможно нужно заставить его не перекодировать в такое?

  Ответить  
 
 автор: sim5   (16.02.2011 в 18:37)   письмо автору
 
   для: sl1p   (16.02.2011 в 18:34)
 

Так что у вас в исходнике, это:
'&#206;&#206;&#206; "&#192;&#226;&#232;&#242;&#229;&#245;",
&#199;&#224;&#239;&#238;&#240;&#238;&#230;&#252;&#229;'
или:
&Icirc;&Icirc;&Icirc; &quot;&Agrave;&acirc;&egrave;&ograve;&aring;&otilde;&quot;.....
?

  Ответить  
 
 автор: sl1p   (16.02.2011 в 18:42)   письмо автору
 
   для: sim5   (16.02.2011 в 18:37)
 

&Icirc;&Icirc;&Icirc; &quot;&Agrave;&acirc;&egrave;&ograve;&aring;&otilde;&quot;.....

  Ответить  
 
 автор: sim5   (16.02.2011 в 18:43)   письмо автору
 
   для: sl1p   (16.02.2011 в 18:42)
 

А это тогда откуда?

>Поцкажите что это за кодировка?)
>&#206;&#206;&#206; "&#192;&#226;&#232;&#242;&#229;&#245;", ...

?

  Ответить  
 
 автор: sl1p   (16.02.2011 в 18:47)   письмо автору
 
   для: sim5   (16.02.2011 в 18:43)
 

&#206;&#206;&#206; "&#192;&#226;&#232;&#242;&#229;&#245;", ...

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

  Ответить  
 
 автор: Trianon   (16.02.2011 в 18:52)   письмо автору
 
   для: sl1p   (16.02.2011 в 18:47)
 

если фактически там было ООО "Авитех", ..., значит Ваш скрипт попытался выкинуть эту строку в кодировке 1251 не смотря на то, что поток был настроен на что-то иное (latin-1, utf-8 и т.д.)

Вероятно, пакет скриптов, который читает у Вас xls-файл, на работу с кириллицей просто не рассчитан.

  Ответить  
 
 автор: sl1p   (16.02.2011 в 18:58)   письмо автору
9.5 Кб
 
   для: Trianon   (16.02.2011 в 18:52)
 

Вы правы, не расчитан, это буржуйский скрипт.

Но я полностью его перебрал и контролирую места где он чтото декодирует.
Сейчас там происходит такое:

<?
$result 
iconv('UTF-16LE''CP1251'$string);


пробовал так:

<?
$result 
iconv('UTF-16LE''UTF-8'$string);


тогда получается такая строка:
(приложение)

и в исходном коде такое:
[0] => Array
        (
            [empty] => &ETH;џ&Ntilde;Ђ&ETH;&deg;&ETH;&sup1;&Ntilde;Ѓ-&ETH;&raquo;&ETH;&cedil;&Ntilde;Ѓ&Ntilde;‚
            [price] => 
            [count] => 
            [season] => &ETH;ћ&ETH;ћ&ETH;ћ &quot;&ETH;ђ&ETH;&sup2;&ETH;&cedil;&Ntilde;‚&ETH;&micro;&Ntilde;…&quot;, &ETH;—&ETH;&deg;&ETH;&iquest;&ETH;&frac34;&Ntilde;Ђ&ETH;&frac34;&ETH;&para;&Ntilde;Њ&ETH;&micro;
        )

  Ответить  
 
 автор: sl1p   (16.02.2011 в 19:07)   письмо автору
 
   для: sl1p   (16.02.2011 в 18:58)
 

я не вешаю руки потому что какимто же образом sim5 добился нужного результата..
Каким образом призошло перекодирование символов при вставке на форум в первом посте?.. Возможно попробовать сделать так же?

  Ответить  
 
 автор: sim5   (16.02.2011 в 19:11)   письмо автору
 
   для: sl1p   (16.02.2011 в 19:07)
 

Просто путаница произошла. Вам надо "перевернуть" преобразование:
<?
$s 
'&Icirc;&Icirc;&Icirc; &quot;&Agrave;&acirc;&egrave;&ograve;&aring;&otilde;&quot;, 
&Ccedil;&agrave;&iuml;&icirc;&eth;&icirc;&aelig;&uuml;&aring;'
;
$s strtr($sarray_flip(get_html_translation_table(HTML_ENTITIES)));
Это будет в 1251, в utf переведете и все.

  Ответить  
 
 автор: sl1p   (16.02.2011 в 19:16)   письмо автору
 
   для: sim5   (16.02.2011 в 19:11)
 

омг, получилось:):) спасибо огромнейшое!

объясните пожалуйста, я чтото не могу понять "как это"..

  Ответить  
 
 автор: sim5   (16.02.2011 в 19:19)   письмо автору
 
   для: sl1p   (16.02.2011 в 19:16)
 

Да лучше почитать в мануале о get_html_translation_table(), чем писать это все тут. А выведя на экран массив результа запроса этой функции, поймете сами почему. )

  Ответить  
Rambler's Top100
вверх

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