webForumDet fria alternativet

xslt_process() genererar ej fil i UTF-8

0 svar · 432 visningar · startad av PepeJeria

PepeJeriaMedlem sedan feb. 2003779 inlägg
#1

Har följande PHP kod som genererar gör en text fil innehållande en JavaScript array:

$sQuery = $_REQUEST["qu"];

if(!empty($sQuery))
{
	$sFileName = "result/" . $sQuery . ".txt";

	if(!file_exists($sFileName))
	{
		GenerateQueryFile("xml/airports_new.xml", "xml/airports.xsl", array( 'queryString' => $sQuery), $sQuery);	
	}

	header("Location: http://" . $_SERVER["SERVER_NAME"] . "/XSLT/" . $sFileName);
}

function GenerateQueryFile($sXML, $sXSL, $aParameters, $sQuery)
{
	$xsltproc = xslt_create();

	$filebase = "file://" . getcwd() . "/";
	xslt_set_base($xsltproc, $filebase);
	$aArguments = array('/_xml' => file_get_contents($sXML), '/_xsl' => file_get_contents($sXSL));

	$sXHTML = xslt_process($xsltproc, 'arg:/_xml', 'arg:/_xsl', 'result/' . $sQuery. '.txt', $aArguments, $aParameters);
	
	xslt_free($xsltproc);
}

Om filen finns, skicka tillbaka, om inte gör en XSL Transformation.

I HTML filen har jag UTF-8. XML-filen är oxå UTF-8 encoding, och i XSL filen har jag även följande:

<xsl:output
	method="text"
	omit-xml-declaration="yes"
	media-type="text/plain"
	indent="yes"
	encoding="UTF-8"/>

Men text filen som skapar är ändå ISO-8859-1...

Detta går att beskåda här.
XML och XSL filer finns här

Vet någon hur jag kan få den genererade text filen att vara UTF-8?

Problement jag har är att när jag tex skriver "mün" så kommer en fil som heter mün.txt att genereras. Detta går att se här.

Genererad på 366 ms · cache AV · v20260730165559-full.f96bc7eb