[vlc-devel] [PATCH 1/2] lua: add a guess_encoding function to convert Latin1 to UTF8
remi at remlab.net
Tue Aug 27 17:40:42 CEST 2013
Le mardi 27 août 2013 16:43:53 Ludovic Fauvet a écrit :
> On 08/27/2013 04:27 PM, Rémi Denis-Courmont wrote:
> > On Tue, 27 Aug 2013 16:14:55 +0200, Ludovic Fauvet <etix at videolan.org>
> > wrote:
> >>> That's not true. It returns an empty string on error, which is clearly
> >>> different from success. Feel free to change it to return a proper error
> >>> or nil.
> >> Sorry but you're wrong.
> > No. You are. You can RTFS if you do not believe me.
> You should be kidding! Right?
Not unless someone hacked my vlc.git trees on two different matchines.
> >> Using the following piece of code:
> >> src = vlc.strings.from_charset("ISO_8859-1", src)
> >> and the following UTF8 encoded input string:
> >> Le Lac des Cygnes (Piotr Ilitch Tchaïkovsky)
> >> It gives me the following result:
> >> Le Lac des Cygnes (Piotr Ilitch TchaÃ¯kovsky)
> > Yes, and so what?
> You don't see what's wrong with it? Because I do.
I see what's wrong with your code above, and what's wrong with the result.
I don't see anything wrong with "my solution" (dixit JB) though.
> >> Where's my empty string?
> > There was no error, and there is no empty string. This is irrelevant.
> This review is a complete nonsense.
const char *src = "Piotr Ilitch Tcha\xefkovsky";
FromCharset("UTF-8", src, strlen(src)) == NULL
strcmp(FromCharset("ISO-8859-1", src, strlen(src)),
"Piotr Ilitch Tchaïkovsky") == 0;
Which naturally gives us an implementation of IsUTF8() with FromCharset():
(Note: error cases and garbage collection left out for simplicity.)
static inline bool IsUTF8(const char *str);
return *str ? (FromCharset("UTF-8", str, strlen(str)) != NULL) : true;
And in Lua, surprise surprise, the same coding logic works with the empty
string instead of NULL.
> Can't you just admit that your assumptions were wrong so we can actually
> move forward and find the *best* way to fix this issue or are you going to
> continue arguing that there is no issue?
More information about the vlc-devel