【发布时间】:2020-11-19 22:57:50
【问题描述】:
我正在做一个项目,我使用 php 从 xampp sql server 中抓取一个随机的希腊词。然后我使用str_shuffle() 随机化单词顺序(ex. bye => ybe)。但是在希腊字母上使用str_shuffle() 会返回带有很多????代替大多数希腊字母。如果我从我的代码中删除 str_shuffle() 希腊词正确显示没有 ??? .
我编写的代码确保我有正确的编码,但 str_shuffle() 是问题所在。
<h1 id = "hidden-word">The word is :
<?php
$link = mysqli_connect('localhost' , 'root' , '' ,'dodecanese');
if(!$link){
echo 'Error connecting to DB';
exit;
}
mysqli_query($link,"SET NAMES 'utf8'");
$query = "SELECT island_name FROM dodecanese ORDER BY RAND() LIMIT 1";
$result = mysqli_query($link, $query);
if(!$result){
echo 'There is an issue with the DB';
exit;
}
$row = mysqli_fetch_assoc($result);
//str shuffle creates ?
echo '<span id = "random-island">'.str_shuffle($row['island_name']). '</span>';
?>
</h1>
我在 html 上也有编码 <meta charset="utf-8"/> 。我看过很多关于这个的帖子,尤其是UTF-8 all the way through,但这并没有帮助。感谢您对此的帮助。提前谢谢你。
【问题讨论】:
-
str_shuffle不相关。问题似乎是希腊语的存储。见stackoverflow.com/questions/38363566/…中的“问号”