0

这可能是一个愚蠢的问题,但我有点迷失了。

阿拉伯语问题是如何准确存储在数据库中的?

让我们来看看ب,如果我直接将它插入到数据库中,它就会变成?. 不好。

如果我使用表单(和 php 脚本)并将其存储为 UTF-8,它的存储方式类似于ب. 我可以把它读出来打印出来,一切都很好。

所以我的问题是,阿拉伯语(和日语,...)字母总是像这样存储在 mysql 数据库中ب吗?或者我应该在某处更改设置,当我浏览数据库时它应该看起来像 ب?

这只是为了定义我在数据库中的行(varchars/chars)的长度......

数据库设置为 utf8_general

网站完全 UTF8

4

1 回答 1

2

如果你尝试存储一个 UTF-8 编码的字符并且它变成?,这意味着 MySQL 不理解或不支持你发送字符的编码。需要将该列设置为存储utf8数据(utf8mb4如果支持则更好),并且需要将连接编码设置为正确的编码,以告知 MySQL以何种编码向其发送数据

如果您从表单提交中获取 HTML 实体,这意味着浏览器试图以不支持该特定字符的编码发送数据;因此它不得不依靠 HTML 实体来对字符进行编码。您需要正确设置编码声明以告诉浏览器它应该将 UTF-8 编码文本发送到服务器。

请参阅在 Web 应用程序中从前到后处理 Unicode和/或UTF-8以了解如何执行所有这些操作。

于 2013-06-06T14:39:19.073 回答