有一个可以选择语言的网站。部分文本取自数据库(我为连接设置了编码),数据库中的俄语正常显示。但我也有一个文件php,我连接到我想在其上显示该文件中的文本的页面。该文件,数组包含一些俄语和英语单词,当您需要在页面上显示俄语单词时,它们看起来像某种符号。我尝试像这样在这个文件中设置编码,header("Content-Type: text/html; charset=utf-8");但在这种情况下,文件中的单词正常显示,其余的(来自数据库的)都显示有问号等。数据库连接编码:
$connection=mysqli_connect(server, name, pass, db_name);
$connection->set_charset("utf-8");.
我将描述结构:有一个文件lang.php包含这种形式的文本:
$blog_single_arr = [
"no_art" => [
"no_art_title" => [
"en" => "No Articles.",
"ru" => "Нет статей."
],
"no_art_text" => [
"en" => "Sorry, but there are no articles on this category.",
"ru" => "Извините, но статьи по этой категории отсутствуют"
]
];
然后,我将此文件连接到页面本身的文件,然后根据用户选择的语言,我以这种方式显示文本:($current_lang它是“en”或“ru”)
<?php echo $blog_single_arr['no_art']['no_art_title']["$current_lang"];?>
也就是说,文件本身仅用作资源,如有必要,我会从中获取文本。告诉我,我怎样才能确保文件中的俄语单词正常显示?


您
utf=8旁边没有报价,也许这就是问题所在。我决定了一切,将数据库连接中的编码更改为
$connection->set_charset("utf8");并设置在显示的文件上header("Content-Type: text/html; charset=utf-8");。也就是说,我从数据库和文件中得到相同的编码,然后为所有数据设置所需的编码。