UTF при формировании сайта

Статус
В этой теме нельзя размещать новые ответы.

NIMahno

Новичок
UTF при формировании сайта

Сайт многоязычный и написан на технологии
xml+xsl
преобразование в html производится при помощи функции
xslt_process()
Очень часто случается, что при смене языка слетает кодировка сайта, хотя все исходники и бд строго в кодировке utf8.
<meta charset...> тоже поставил, но кодировка все же не держится.
пример можно увидеть по ссылке

http://www.cheapworldhotel.com/kompas/index.php

что еще можно предпринять, чтоб кодировка все же держалась?
 

Gas

может по одной?
1. кодировака utf-8, не utf8
2. слать хедер: Content-Type: text/html; charset=UTF-8
 

NIMahno

Новичок
вобщем помогает, но для русского
почему-то валится немецкий
не подскажете в чем особенность?
 

alekciy

Новичок
NIMahno
Тебе русским языком Gas уже сказал, установи HTTP header в скрипте:
Код:
header('Content-Type: text/xml; charset=ВПИСАТЬ_КОДИРОВКУ_ПОТОКА');
А на твое meta в коде страны все браузеры х** ложат.

-~{}~ 14.12.07 17:25:

Автор оригинала: Gas
как понимать слово "валится" в данном контексте?
Кракозябров в приведенном линке я не вижу. Есть подозрение, что автор от движка ждет текст страницы в на русском языке, а ему выдает немецкий. Видимо в двигле i18n, а автор логику работы двигла понимает не очень.

-~{}~ 14.12.07 17:26:

Или же по дефолту не ставиться русский. Тогда это не знание HTML спецификации.
 

Gas

может по одной?
alekciy
не правда, не ложат, но лучше и хедер слать.

NIMahno
кстати, если это не просто черновой пример - для каждого языка должен быть свой урл, иначе нельзя нормально кинуть ссылку и поискивики будут индексировать только один язык.
 

dark-demon

d(^-^)b
> А на твое meta в коде страны все браузеры х** ложат.

расскажи это, пожалуйста, ie :)
 

Gas

может по одной?
alekciy
если с сервера не приходит header, то броузер смотрит meta (как раз ситуация NIMahno), противостояние header vs meta тут даже не обсуждалось.
 

alekciy

Новичок
Gas
Мне кажется очевидным ситуация, что когда нет HTTP заголовков данные берутся из META. Тут и рассматривать просто нечего.


dark-demon
А нафига мне там XSLT трансформация?
 

dark-demon

d(^-^)b
alekciy, тебе может и без надобности, а вот топикастер юзает. правда всего-лишь серверную..
 

alekciy

Новичок
dark-demon
Я работал как с серверными так и с клиенскими шаблонами и просто не улавливаю, какая связь между используемыми кодировками и XSLT преобразованием. На выходе все равно получаем XML/HTML.
 

dark-demon

d(^-^)b
угу, только вот charset=utf-8 таинственным образом пропадает и ие использует кодировку по умолчанию, если не указана мета.
 

alekciy

Новичок
dark-demon
Напиши пример XML файла который преобразуется, серверный XSLT шаблон для его обработки. Просто в чудеса я не верю.
 

alekciy

Новичок
dark-demon
Я верю в факты. Может есть такой глюк, может нет. Я не знаю. Ты утверждаешь, что такой баг имеет место быть. Значит был практический опыт работы?

Просто я знаю, что XML - > XSLT = HTML. HTML он и в Африке HTML каким бы образом он не был получен. Поэтому в баги IE я верю, но контексте всего обсуждения у меня складывается мнение, что это ты что-то не так написал в движке, а не это баг IE. Легко ошибки списывать на баги другого ПО. И такие случае я вижу очень часто. Однако в процессе разбора оказывается, что дело в не совсем прямых руках программиста.

Поэтому то я и требую от тебя конкретный пример для данной ситуации. И уже исходя из этого смогу составить свое мнение.

"Бумаги, сударь, бумаги!" (с)
 

dark-demon

d(^-^)b
Код:
<?php
	header( 'Content-Type: text/xml; charset=utf-8' );
	echo '<?xml version="1.0" encoding="utf-8" ?>';
	echo '<?xml-stylesheet type="text/xsl" href="1.xsl" ?>';
?>
<xml>
	абракадабра
</xml>
Код:
<t:stylesheet version="1.0"
	xmlns="http://www.w3.org/1999/xhtml"
	xmlns:t="http://www.w3.org/1999/XSL/Transform"
	xmlns:ht="http://www.w3.org/1999/xhtml"
	>
	<t:output
		method= "html"
		omit-xml-declaration= "yes"
		encoding= "utf-8"
		indent= "no"
		media-type= "text/html"
		cdata-section-elements= "script style"
		doctype-public= "-//W3C//DTD XHTML 1.1//EN"
		doctype-system= "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"
	/>

	<t:template match="/">
		<html>
			<head>
				<title> абракадабра </title>
				<!--<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />-->
			</head>
			<body>
				<t:value-of select="." />
			</body>
		</html>
	</t:template>

</t:stylesheet>
оба файла сохрани в utf-8 без сигнатуры
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху