php -> xls (глюки с отображением кирилицы и латиницы)

Alx

Новичок
php -> xls (глюки с отображением кирилицы и латиницы)

Приветствую!

Никак не могу победить вот какую проблемку: создаю xls "дубовым" способом из обычной html таблицы. всё бы ничего, да вот только когда в этой таблицы есть и кирилические символы, и символы кирилицы, то все русские буквы превращаются в бнопню. Если же в таблице только кирилица, то все в порядке - все слова читаемы.

делаю вот так:

PHP:
header("Expires: 0");
header("Cache-Control: no-cache, no-store, must-revalidate, post-check=0, pre-check=0");
header("Pragma: no-cache");
header("Content-Type: application/x-msexcel; charset=windows-1251; format=attachment;");
header("Content-Disposition: attachment; filename=\"file.xls\"");

?><table border="1" cellspacing="1" cellpadding="0"><?

while($row = mysql_fetch_assoc($result)){ ?>
  <tr style="font-weight:bold">
    <td style="background-color:#CCCCCC;"><?= ++$counter ?></td>
    <td style="background-color:#CCCCCC;" colspan="8"><?= $row['Name'] ?></td>
  </tr>
  <tr>
    <td> </td>
    <td colspan="8">Город: <?= $city_ru[$row['City']] ?></td>
  </tr>
  <tr>
    <td> </td>
    <td colspan="8">Район: <?= $row['Area'] ?></td>
  </tr>
  <tr>
    <td colspan="9"></td>
  </tr>
<? } ?>
</table>
подскажите, плз, в чём может быть загвоздка.

-~{}~ 27.06.06 01:16:

Ещё поэкспериментировал. Оказывается, что глюк появляется тогда, когда вот в этой строчке

PHP:
<td style="background-color:#CCCCCC;" colspan="8"><?= $row['Name'] ?></td>
переменная $row['Name'] длинной более трёх символов.

Правда легче от этого не стало :|
 

SiMM

Новичок
> когда в этой таблицы есть и кирилические символы, и символы кирилицы
А чем отличаются кириллические символы от символов кириллицы?
PS: не воспроизводится.
 

Alx

Новичок
SiMM, спасибо за замечание. Я имел ввиду:

> когда в этой таблице есть и кирилические символы, и символы латиницы

p.s.
это значит надо бы уже в спчку идти, а то ночь уже на дворе, и мысли все в кучу :)
 

idler

Новичок
когда делал наоборот, писал модуль отправки прайс-листа из Excel на сервер (сокетами внутри Excel) выяснил, что Excel отправляет в UTF8 а принимает в cp1251

при прочтении темы возникло предположение, что хранит он данные в одной из этих кодировок.

Извиняюсь если не в тему и не помог.
 

bakh

Абалдуй
...а я вот тут тоже уже третьи сутки никак не могу решить ту же самую проблему...
Точнее, всё даже ещё смешнее:
есть два практически идентичных генератора - прайс на http://ferane.spb.ru/xls.php и список фильмов на http://bakh.spb.ru/Films/xls.php. Идентичны, т.к. писал их оба я... :)
(Оне довольно-таки большие, так что будьте внимательнее)
Первый - всё отлично и красиво...
Второй - та же история, что и у Alx...
И кто виноват?.. И что делать?..
...
Да... Вот на всякий пожарный: http://bakh.spb.ru/phpinfo.php и http://ferane.spb.ru/phpinfo.php...
 

Alx

Новичок
я все же использовал в итоге PEAR::Spreadsheet_Excel_Writer
 

bakh

Абалдуй
Имхо, стрельба из пушки по воробьям...
Для передачи простой двухмерной таблицы одной страницой использовать что-то стороннее... :\
 

bakh

Абалдуй
"Будем искать, будем искать..." /Семён Семёныч Горбунков/
;)

-~{}~ 04.10.06 17:35:

...вот ведь как - поговоришь с людьми и решение само приходит в голову... %)
Решений, собственно, даже два:
1. Тупое, как пробка: перед началом самой таблицы вставляем
Код:
<meta http-equiv="content-type" content="text/html; charset=windows-1251">
... И Ексель мирно это всё сжирает!.. :)
2. Более умное и содержательное, но тоже достаточно странное: тут говорили про UTF-8... Дык, передавать результирующий HTML кодированным в него... Ексель его тоже понимает... Правда, выглядит несколько странно (у меня, по крайней мере), зато русский присутствует по полной программе... :) Соответственно, встаёт задача назначить этому делу приличный Уникодный шрифт...
...
Вот и всё, пожалуй...
Спасибо за внимание и помощь!.. :)
 

Alx

Новичок
у тебя там (в этом .xls файле) только кириллические символы или латиница тоже есть?
 

bakh

Абалдуй
...и латиница...

-~{}~ 04.10.06 20:41:

Кстати...
А вопрос-то всё равно в силе!.. :)
Ведь в прайсе на http://ferane.spb.ru/xls.php этих ухищрений нету!..
Чувствую, что разница может быть в том, что прайс хостится под Виндой, а фильмы - под *nix'ом каким-то...
Однако, должно ж это как-то настраиваться!.. :\
 
Сверху