gpt4 book ai didi

php - 无法保存转录到Mysql

转载 作者:行者123 更新时间:2023-11-28 23:34:35 24 4
gpt4 key购买 nike

我正在尝试为字典制作数据。

但是当系统保存转录到数据库时,它会丢失一些特殊字符。

例如:

group /ɡruːp/

当它保存在DB中时,它只保留group/ɡrup/

它丢失了 : 字符。

什么字符集可以保存这个值?

我尝试使用 UTF8UTF8-MB4

这是我的 PHP 代码:

// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
$conn->set_charset("UTF-16LE");

// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}

$stmt = $conn->prepare("INSERT INTO words (WORD,WORD_UPPER_CASE, TRANSCRIBE, DESCRIPTION)VALUES (?, ?, ?,?)");
$stmt->bind_param("ssss", $_WORD,$_WORD_UPPER_CASE, $_TRANSCRIBE, $_DESCRIPTION);

// set parameters and execute
$_WORD = $WORD;
$_WORD_UPPER_CASE = $WORD_UPPER_CASE;
$_TRANSCRIBE = $TRANSCRIBE;
$_DESCRIPTION = $DESCRIPTION;

$stmt->execute();
$stmt->close();
$conn->close();

谢谢。

最佳答案

您的代码假定声明编码不会出错:

$conn->set_charset("UTF-16LE");

如果你运行 var_dump($conn->set_charset("UTF-16LE")) 你会看到 bool(false) 因为那不是有效的编码名称在 MySQL 中。

See Also您可以在功能文档的部分找到 List of character sets that MySQL supports关联。在我的系统中,UTF 编码包括这些:

mysql> SHOW CHARACTER SET LIKE '%utf%';
+---------+----------------+--------------------+--------+
| Charset | Description | Default collation | Maxlen |
+---------+----------------+--------------------+--------+
| utf8 | UTF-8 Unicode | utf8_general_ci | 3 |
| utf8mb4 | UTF-8 Unicode | utf8mb4_general_ci | 4 |
| utf16 | UTF-16 Unicode | utf16_general_ci | 4 |
| utf32 | UTF-32 Unicode | utf32_general_ci | 4 |
+---------+----------------+--------------------+--------+
4 rows in set (0.00 sec)

最后但同样重要的是,您不应该尝试随机编码。您的应用程序字符集由决定。在 2016 年,几乎没有理由不使用 UTF-8。

关于php - 无法保存转录到Mysql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36169609/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com