parser

Написать ответ на текущее сообщение

 

 
   команды управления поиском

escape/unescape | urlencoded-данные в UTF-8

Sergey M. 29.03.2005 11:38 / 07.07.2005 13:07

Как видно из примера, функция работает с urlencoded данными в UTF-8 (кодирует в ... / декодирует из ...).
На второй параметр в escape не обращайте внимания, он ещё на стадии альфа-тестирования, и вообще я не знаю зачем он там нужен...
@main[]
<pre>
   ^escape[парсер]
   ^unescape[%D0%BF%D0%B0%D1%80%D1%81%D0%B5%D1%80]
</pre>


@escape[string;charset][doc;template;transformedDoc]
^if(!def $charset || !-f "$MAIN:charsetsdir/${charset}.cfg"){$charset[$request:charset]}
$doc[^xdoc::create{<?xml version="1.0" encoding="$charset" ?>
	<document></document>}]
$template[^xdoc::create{<?xml version="1.0" encoding="$charset" ?>
<xsl:stylesheet
	xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
	xmlns:str="http://exslt.org/strings"
	version="1.0">
<xsl:template match="*">
<xsl:value-of select="str:encode-uri('$string',true())"/>
</xsl:template>
</xsl:stylesheet>
}]
$transformedDoc[^doc.transform[$template]] 
$result[^transformedDoc.string[$.method[html]]]


@unescape[string][doc;template;transformedDoc]
$doc[^xdoc::create{<?xml version="1.0" encoding="$request:charset" ?>
	<document></document>}]
$template[^xdoc::create{<?xml version="1.0" encoding="$request:charset" ?>
<xsl:stylesheet
	xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
	xmlns:str="http://exslt.org/strings"
	version="1.0">
<xsl:template match="*">
<xsl:value-of select="str:decode-uri('$string')"/>
</xsl:template>
</xsl:stylesheet>
}]
$transformedDoc[^doc.transform[$template]] 
$result[^transformedDoc.string[$.method[html]]]