Re: Git-mediawiki : Encoding problems in perl

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Jérémie NIKAES <jeremie.nikaes@xxxxxxxxx> writes:

> 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/
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]