Emoji像😋😉😎😀😃
(通过表格输入)一样保存在我的数据库(phpmyadmin)中。在我看来奇怪的角色还是正常的?它们以正确的方式显示在我的网站上。因此,这不是真正的问题,但我想确保这些奇怪的字符正确。我的表格和文本字段具有字符集utf8mb4_general_ci,并且我在html页上使用了<meta charset=utf-8>
。
我进行了进一步的研究,但尚未解决。 mojibake已成为问号。这些表情符号现在让我哭泣……希望有人知道我在做什么错。
我试图将所有内容都转换为utf8mb4和utf8mb4_unicode_ci(服务器,数据库,表和列)。
我什至在my.cnf中设置了
[client]
default-character-set = utf8mb4
[mysql]
default-character-set = utf8mb4
[mysqld]
character-set-client-handshake = FALSE
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
我还查看了问答:
问号(Señor为Señor):
我的测试表单如下:
<?php
header('Content-Type: text/html; charset=utf-8');
$con = mysqli_connect('*','*','*','*') or exit();
mysqli_set_charset($con, "utf8mb4"); /// without this, it become latin1
///mysqli_query($con, "SET character_set_results = 'utf8mb4', character_set_client = 'utf8mb4', character_set_connection = 'utf8mb4', character_set_database = 'utf8mb4', character_set_server = 'utf8mb4'");
include ($_SERVER['DOCUMENT_ROOT'].'/assets/errors_and_warnings.php');
echo mysqli_character_set_name($con);
echo $_POST['action'];
if (!empty($_POST['bericht'])) {
$bericht = $_POST['bericht'];
} else {
$bericht = 'leeg';
}
echo $bericht;
if (isset($_POST['action'])) {
mysqli_query($con, "INSERT INTO test (bericht, datum)
VALUES ('".mysqli_real_escape_string($con, $bericht)."',
NOW())")
or exit (mysqli_error($con));
}
?>
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Formulier</title>
</head>
<body>
<br><br>
<form accept-charset="UTF-8" action="<?php $_SERVER['REQUEST_URI'] ?>" method="post" name="test" id="test">
<input name="action" type="hidden" id="action" value="topicplaatsen" />
Bericht:<br />
<textarea name="bericht" cols="40" rows="10" id="bericht">Proeftekst</textarea><br><br>
<input name="imageField" type="image" src="../vormgeving/2010/button/verstuur_blauw.gif"/>
</form>
</body>
</html>
我正在使用mysql 5.5.60版本。
答案 0 :(得分:0)
appendOwner
是😋😉😎😀😃
的Mojibake。
这通常意味着参与了处理。对于表情符号,您需要
latin1
,而不仅仅是旧的CHARACTER SET utf8mb4
。
This Q&A应该可以帮助您找出缺少的步骤。
它说了几句话:HTML表单应以utf8
更多
<form accept-charset="UTF-8">
看起来正确; GLOBAL VARIABLES
似乎没有接受全局值或覆盖了它们。
您是否无法重新连接?
您可以在连接之后和执行其他各种查询之前添加SESSION VARIABLES
。
每次使用$con->set_charset('utf8mb4');
后检查错误。