Do you know if there is any difference in the cyrillic characters that show up and those that don't? Do you maybe know if they are 1-byte vs. 2-byte strings?
The "ru_RU.utf-8" strings are just used for the system locale, and those are only used for emitting russian date formatting syntaxes; they are unrelated to any database in- or output.
On my server I am using PHP 5.1.2, UTF-8 and MySQL 4.1.7, where it works as expected with all umlauts or special characters I know (plus chinese)
About other russian users, you might want to contact Nightly, the translator of the russian file, whose mail address is inside the file. He's also an experienced developer, and russian too, so he might have a clue.
Meanwhile, I would like you to test a little script and save it as "utf_test.php" inside your serendipity folder and call it via PHP. It will insert some test strings and read them. Please make sure that you save that file with UTF-8 character set and that you insert cyrillic strings into the $test_string variable.
Code: Select all
<?php
$teststring = 'äöüß';
include 'serendipity_config.inc.php';
header('Content-Type: text/html; charset=utf-8');
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head><title>Cyrillic Test</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
<?php
echo "SET UTF-8...<br />\n";
$x = serendipity_db_query("SET NAMES utf8");
echo $x . "<br />\n";
echo "CREATING Table...<br />\n";
serendipity_db_query("DROP TABLE IF EXISTS `utf_test`");
$x = serendipity_db_query("
CREATE TABLE `utf_test` (
`key` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`value` VARCHAR( 255 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL
) CHARACTER SET utf8 COLLATE utf8_general_ci;");
echo $x . "<br />\n";
echo "INSERTING '$teststring'...<br />\n";
$x = serendipity_db_query("INSERT INTO utf_test (value) VALUES ('$teststring')");
echo $x . "<br />\n";
echo "SELECTING text...<br />\n";
$x = serendipity_db_query("SELECT * FROM utf_test");
echo "<pre>" . print_r($x, true) . "</pre><br />\n";
?>
</body>
</html>
Garvin





