Index: includes/Parser.php =================================================================== --- includes/Parser.php (revision 16629) +++ includes/Parser.php (working copy) @@ -141,6 +141,7 @@ $this->setFunctionHook( 'ns', array( 'CoreParserFunctions', 'ns' ), SFH_NO_HASH ); $this->setFunctionHook( 'urlencode', array( 'CoreParserFunctions', 'urlencode' ), SFH_NO_HASH ); + $this->setFunctionHook( 'urlencodeiso', array( 'CoreParserFunctions', 'urlencodeiso' ), SFH_NO_HASH ); $this->setFunctionHook( 'lcfirst', array( 'CoreParserFunctions', 'lcfirst' ), SFH_NO_HASH ); $this->setFunctionHook( 'ucfirst', array( 'CoreParserFunctions', 'ucfirst' ), SFH_NO_HASH ); $this->setFunctionHook( 'lc', array( 'CoreParserFunctions', 'lc' ), SFH_NO_HASH ); Index: includes/MagicWord.php =================================================================== --- includes/MagicWord.php (revision 16629) +++ includes/MagicWord.php (working copy) @@ -89,6 +89,7 @@ 'basepagename', 'basepagenamee', 'urlencode', + 'urlencodeiso', 'currenttimestamp', 'localtimestamp', 'directionmark', Index: includes/CoreParserFunctions.php =================================================================== --- includes/CoreParserFunctions.php (revision 16629) +++ includes/CoreParserFunctions.php (working copy) @@ -31,6 +31,10 @@ return urlencode( $s ); } + static function urlencodeiso( $parser, $s = '' ) { + return urlencode( utf8_decode ( $s )); + } + static function lcfirst( $parser, $s = '' ) { global $wgContLang; return $wgContLang->lcfirst( $s ); Index: languages/MessagesEn.php =================================================================== --- languages/MessagesEn.php (revision 16629) +++ languages/MessagesEn.php (working copy) @@ -283,6 +283,7 @@ 'newsectionlink' => array( 1, '__NEWSECTIONLINK__' ), 'currentversion' => array( 1, 'CURRENTVERSION' ), 'urlencode' => array( 0, 'URLENCODE:' ), + 'urlencodeiso' => array( 0, 'URLENCODEISO:' ), 'anchorencode' => array( 0, 'ANCHORENCODE' ), 'currenttimestamp' => array( 1, 'CURRENTTIMESTAMP' ), 'localtimestamp' => array( 1, 'LOCALTIMESTAMP' ),