我在MySQL DB中遇到UTF-8编码问题。我使用HTML表单在MySQL DB和PHP代码中插入数据来表示来自DB的数据。当我使用HTML表单插入字符串"ąčęėįšųū"
时,我在PHPMyAdmin中的DB中看到了这样的“Ä…Äęėįšųū”
符号。我对WEB上的数据表示没有问题,字符串“Ä…Äęėįšųū”
通过select函数表示为“ąčęėįšųū”。
我的目标是存储数据"ąčęėįšųū"
而不是“Ä…Äęėįšųū”
。你知道如何解决这个问题吗?
MySQL设置> my.ini
init-connect = SET NAMES
utf8 collation_server = utf8_unicode_ci
被character_set_server = UTF8
数据库设置:
数据库整理> utf8_general_ci
表格整理> utf8_general_ci
字段“标题”整理> utf8_general_ci
Apache> php.ini:
DEFAULT_CHARSET = “UTF-8”
提交数据的HTML表单:
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Untitled Document</title>
</head>
<body>
<form id="form1" name="form1" method="post" action="tournaments-action.php" accept-charset="utf-8">
<p>
<label for="textfield">Text Field:</label>
<input type="text" name="title" id="textfield">
</p>
<p>
<input type="submit" name="submit" id="submit" value="Submit">
</p>
</form>
</body>
</html>
用于提交数据的PHP表单:
<?php
include("../config.php");
$title = mysqli_real_escape_string($db, $_REQUEST['title']);
// attempt insert query execution
$sql = "INSERT INTO tournaments (title) VALUES ('$title')";
if(mysqli_query($db, $sql)){
$msg="Records added successfully.";
echo "Loading";
} else{
$msg="ERROR: Could not able to execute $sql. ";
echo "Loading";
}
// close connection
mysqli_close($db);
?>