## Using UTF-8 in PHP-GTK2

By admin | August 18, 2008

When trying to use a string that has characters that are non-English (Asian and middle east characters) or characters that have accents for PHP-GTK’s widgets, you may possibly encounter a situation like the image to the right.

This bug or glitch is caused by the fact that you are trying to use a regional encoding for the application, when in fact you should be passing utf8_encode‘ed strings to it. This also happens with non-english characters in an Gettext messages file.

This can be accomplished with:
 <?php // ... code

// Instead of using function($nonenglish), use function(utf8_encode($nonenglish)) instead
echo(utf8_encode(file_get_contents($argv[1]))); // … code ?> The example above outputs the contents of the first parameter. You can use the above script to encode message.mo files with php filename.php message.mo > message.mo – though you should consider making a backup. For displaying text inside GtkTextView (set text via GtkTextBuffer) though, you will need to use iconv to convert the regional encoding to UTF-8:  <?php // ... code // For conversion from Windows Notepad echo iconv(“windows-1252”,“UTF-8”,$str);
// For conversion from French
echo iconv(“IBM863”,“UTF-8”,$str); // For conversion from Chinese echo iconv(“GB2312”,“UTF-8”,$str);

// … code
?>