git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: Git-mediawiki : Encoding problems in perl

From
Matthieu Moy <matthieu.moy@grenoble-inp.fr>
Date
Jun 8, 2011, 17:11 UTC
Message-ID
<vpqsjrkqmdj.fsf@bauges.imag.fr>
In-Reply-To
<BANLkTinKV3k7uu=+QzvUjrLdRD0TUj67pw@mail.gmail.com>
Jérémie NIKAES <jeremie.nikaes@gmail.com> writes:
Show 10 quoted lines
> Yes I tried uri_escape, but that only works in the direction mediawiki -> git.
> A page named "Eté" on mediawiki comes as a Et%C3%A9.mw file on the repo.
> However, when I try to send that file "Et%C3%A9" with the mediawiki
> API, I get this error
>
> "Can't use an undefined value as a HASH reference at
> /usr/local/share/perl/5.10.1/MediaWiki/API.pm line 554."
>
> So I tried to backslash the '%' but it does not do it...
> Any idea ? Thanks
OK, I know that's cheating, but reading the doc helped ;-)
http://search.cpan.org/~exobuzz/MediaWiki-API-0.35/lib/MediaWiki/API.pm#MediaWiki::API-%3Eedit%28_$query_hashref,_$options_hashref_%29
  The options hashref currently has one optional parameter (skip_encoding
  => 1). This is described above in the MediaWiki::API->api call
  documentation.
  
which leads us to:
  MediaWiki's API uses UTF-8 and any 8 bit character string parameters are
  encoded automatically by the API call. If your parameters are already in
  UTF-8 this will be detected and the encoding will be skipped. If your
  parameters for some reason contain UTF-8 data but no UTF-8 flag is set
  (i.e. you did not use the "use utf8;" pragma) you should prevent
  re-encoding by passing an option skip_encoding => 1 in the
  $options_hash.

In other words, Perl and MediaWiki::API use some black magic to detect UTF-8, and you want to disable it like this:

$mw->edit( {
    action => 'edit',
    title => $title,
    text => $text,
}, {
    skip_encoding => 1
} ) || die $mw->{error}->{code} . ': ' . $mw->{error}->{details};
Tried it, worked :-).
This may well be an alternative solution to the earlier UTF-8 problem.
-- 
Matthieu Moy
http://www-verimag.imag.fr/~moy/
Previous: Jakub NarebskiNext: Jérémie NIKAES
Message 14 of 20 in “Git-mediawiki : Encoding problems in perl”
  1. Jérémie NIKAESJun 8, 2011
  2. Steffen Daode NurpmesoJun 8, 2011
  3. Jeff KingJun 8, 2011
  4. Matthieu MoyJun 8, 2011
  5. Jeff KingJun 8, 2011
  6. Jérémie NIKAESJun 8, 2011
  7. Matthieu MoyJun 8, 2011
  8. Jérémie NIKAESJun 8, 2011
  9. Jeff KingJun 8, 2011
  10. Jérémie NIKAESJun 8, 2011
  11. Matthieu MoyJun 8, 2011
  12. Jérémie NIKAESJun 8, 2011
  13. Jakub NarebskiJun 8, 2011
  14. Matthieu MoyJun 8, 2011
  15. Jérémie NIKAESJun 8, 2011
  16. Matthieu MoyJun 8, 2011
  17. Jeff KingJun 8, 2011
  18. Jérémie NIKAESJun 8, 2011
  19. Jakub NarebskiJun 8, 2011
  20. Jérémie NIKAESJun 8, 2011

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.