UTF-8一直通过

发布于 2025-02-13 05:28:38 字数 222 浏览 0 评论 0 原文

我正在设置新服务器,并希望在我的Web应用程序中完全支持UTF-8。过去,我在现有的服务器上尝试过这一点,并且似乎总是不得不回到ISO-8859-1。

我到底需要在哪里设置编码/炭?我知道我需要配置Apache,MySQL和PHP来执行此操作 - 是否可以遵循一些标准的清单,或者可能对不匹配发生的位置进行故障排除?

这是针对运行MySQL 5,PHP,5和Apache 2的新Linux服务器。

I'm setting up a new server and want to support UTF-8 fully in my web application. I have tried this in the past on existing servers and always seem to end up having to fall back to ISO-8859-1.

Where exactly do I need to set the encoding/charsets? I'm aware that I need to configure Apache, MySQL, and PHP to do this — is there some standard checklist I can follow, or perhaps troubleshoot where the mismatches occur?

This is for a new Linux server, running MySQL 5, PHP, 5 and Apache 2.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(14

深爱成瘾 2025-02-20 05:28:38

数据存储

  • 指定数据库中所有表和文本列上设置的 utf8mb4 字符。这使MySQL物理存储并检索了在UTF-8中本地编码的值。

    • 请注意,简单地更改表( Alter Table test carset charset utf8mb4; 不会更改表列的charset Alter表测试转换为Charset UTF8MB4; 必须使用。
    • 请注意,MySQL将隐式使用 utf8mb4 编码如果 utf8mb4 _*指定了collat​​ion(没有任何明确的字符集)。
    • )。

  • 在MySQL(< 5.5.3)的较旧版本中,不幸的是,您将被迫简单地使用 utf8 ,它仅支持Unicode字符的子集。我希望我在开玩笑。

数据访问

  • 在您的应用程序代码(例如PHP)中,在您使用的任何DB访问方法中,都需要将连接charset设置为 utf8MB4 。这样,MySQL将数据移交给您的应用程序时,不会从其本地UTF-8转换,反之亦然。

  • 一些驱动程序提供了自己配置连接字符集的机制,既可以更新其自身的内部状态,又告知MySQL的编码要在连接上使用 - 通常是首选方法。在PHP中:

    • 如果您使用的是 pdo 抽象层使用PHP≥5.3.6,您可以在 charset href =“ http://php.net/manual/en/ref.pdo-mysql.connection.php” rel =“ noreferrer”> dsn :

        $ dbh = new PDO('mysql:charset = utf8mb4');
       
    • 如果您正在使用 mysqli ,您可以调用 set_charset()

        $ mysqli-> set_charset('utf8mb4'); //面向对象样式
        mySQLI_SET_CHARSET($ link,'utf8mb4'); //程序风格
       
    • 如果您与普通 mysql_set_charset_chareet

  • 如果驱动程序没有提供自己的设置连接字符集的机制,则可能必须发出查询来告诉MySQL您的应用程序如何期望编码连接的数据: 设置名称'utf8mb4'

  • 关于 utf8mb4 / utf8 适用于上述的相同考虑。

输出

  • 应该在HTTP标头中设置UTF-8,例如 content-type:text/html; charset = UTF-8 。您可以通过设置 在php.ini(首选)中,或使用 header()函数手动手动。
  • 如果您的应用程序将文本传输到其他系统,则还需要告知它们的字符编码。使用Web应用程序,必须告知浏览器发送数据的编码(通过http响应标头或 html metadata )。
  • 使用 JSON_ENCODE()编码输出时,您可能需要添加 JSON_UNESCAPED_UNICODE 作为第二个参数,以避免使用JSON UNICODE逃脱。

输入

  • 浏览器将在为文档指定的字符设置中提交数据,因此在输入上必须执行任何特定操作。
  • 如果您对请求编码有疑问(如果可以对其进行篡改),则可以在尝试存储或在任何地方使用它之前将每个接收的字符串验证为有效的UTF-8。 php's mb_check_encoding() 诀窍,但是您必须虔诚地使用它。确实没有办法解决这个问题,因为恶意客户可以在他们想要的任何编码中提交数据,而且我还没有找到可以可靠地为您提供PHP的技巧。

其他代码注意事项

  • 显然,应在有效的UTF-8中编码您将要使用的所有文件(PHP,HTML,JavaScript等)。

  • 您需要确保每次处理UTF-8字符串时,都可以安全地这样做。不幸的是,这是困难的部分。您可能需要广泛使用php的 mbstring 扩展。

  • php的内置字符串操作是不是默认情况下的UTF-8安全。在普通的php字符串操作(例如constenation)中,您可以安全地做些事情,但是对于大多数事情,您应该使用等效 mbString 函数。

  • 要知道您在做什么(阅读:不要弄乱),您确实需要知道UTF-8以及它如何以最低的水平工作。查看 utf8.com 提供一些不错的资源来学习您需要了解的一切。

Data Storage:

  • Specify the utf8mb4 character set on all tables and text columns in your database. This makes MySQL physically store and retrieve values encoded natively in UTF-8.

    • Note that simply changing charset on a table (alter table test charset utf8mb4;) won't change the charset of the table columns. alter table test CONVERT TO charset utf8mb4; has to be using instead.
    • Note that MySQL will implicitly use utf8mb4 encoding if a utf8mb4_* collation is specified (without any explicit character set).
  • In older versions of MySQL (< 5.5.3), you'll unfortunately be forced to use simply utf8, which only supports a subset of Unicode characters. I wish I were kidding.

Data Access:

  • In your application code (e.g. PHP), in whatever DB access method you use, you'll need to set the connection charset to utf8mb4. This way, MySQL does no conversion from its native UTF-8 when it hands data off to your application and vice versa.

  • Some drivers provide their own mechanism for configuring the connection character set, which both updates its own internal state and informs MySQL of the encoding to be used on the connection—this is usually the preferred approach. In PHP:

    • If you're using the PDO abstraction layer with PHP ≥ 5.3.6, you can specify charset in the DSN:

       $dbh = new PDO('mysql:charset=utf8mb4');
      
    • If you're using mysqli, you can call set_charset():

        $mysqli->set_charset('utf8mb4');       // object oriented style
        mysqli_set_charset($link, 'utf8mb4');  // procedural style
      
    • If you're stuck with plain mysql but happen to be running PHP ≥ 5.2.3, you can call mysql_set_charset.

  • If the driver does not provide its own mechanism for setting the connection character set, you may have to issue a query to tell MySQL how your application expects data on the connection to be encoded: SET NAMES 'utf8mb4'.

  • The same consideration regarding utf8mb4/utf8 applies as above.

Output:

  • UTF-8 should be set in the HTTP header, such as Content-Type: text/html; charset=utf-8. You can achieve that either by setting default_charset in php.ini (preferred), or manually using header() function.
  • If your application transmits text to other systems, they will also need to be informed of the character encoding. With web applications, the browser must be informed of the encoding in which data is sent (through HTTP response headers or HTML metadata).
  • When encoding the output using json_encode(), you may want to add JSON_UNESCAPED_UNICODE as a second parameter to avoid using the JSON Unicode escaping.

Input:

  • Browsers will submit data in the character set specified for the document, hence nothing particular has to be done on the input.
  • In case you have doubts about request encoding (in case it could be tampered with), you may verify every received string as being valid UTF-8 before you try to store it or use it anywhere. PHP's mb_check_encoding() does the trick, but you have to use it religiously. There's really no way around this, as malicious clients can submit data in whatever encoding they want, and I haven't found a trick to get PHP to do this for you reliably.

Other Code Considerations:

  • Obviously enough, all files you'll be serving (PHP, HTML, JavaScript, etc.) should be encoded in valid UTF-8.

  • You need to make sure that every time you process a UTF-8 string, you do so safely. This is, unfortunately, the hard part. You'll probably want to make extensive use of PHP's mbstring extension.

  • PHP's built-in string operations are not by default UTF-8 safe. There are some things you can safely do with normal PHP string operations (like concatenation), but for most things you should use the equivalent mbstring function.

  • To know what you're doing (read: not mess it up), you really need to know UTF-8 and how it works on the lowest possible level. Check out any of the links from utf8.com for some good resources to learn everything you need to know.

找回味觉 2025-02-20 05:28:38

我想将一件事添加到 chazomaticus的出色答案

也不要忘记元标记(像这样,或

<meta charset="utf-8">

href =“ http://www.w3.org/international/questions/qa-html-ecoding-declarations#quicklookup” rel =“ nofollow noreferrer”> html4> html4或 ,但是IE7以前给了我问题。

我做的一切正确;数据库,数据库连接和内容类型的HTTP标头都设置为UTF-8,并且在所有其他浏览器中都可以正常运行,但是Internet Explorer仍然坚持使用“西欧”编码。

事实证明,页面缺少元标记。添加解决问题。

W3C实际上具有一个相当大的专用于i18n 的部分。他们有许多与此问题相关的文章 - 描述了http,(x)html和css的一面:

他们建议同时使用HTTP标头和HTML Meta标签(或XML声明XHTML用作XML)。

I'd like to add one thing to chazomaticus' excellent answer:

Don't forget the META tag either (like this, or the HTML4 or XHTML version of it):

<meta charset="utf-8">

That seems trivial, but IE7 has given me problems with that before.

I was doing everything right; the database, database connection and Content-Type HTTP header were all set to UTF-8, and it worked fine in all other browsers, but Internet Explorer still insisted on using the "Western European" encoding.

It turned out the page was missing the META tag. Adding that solved the problem.

The W3C actually has a rather large section dedicated to I18N. They have a number of articles related to this issue – describing the HTTP, (X)HTML and CSS side of things:

They recommend using both the HTTP header and HTML meta tag (or XML declaration in case of XHTML served as XML).

话少情深 2025-02-20 05:28:38

除了在php.ini中设置 default_charset 外,您还可以在代码中使用 header()在任何输出之前,使用 header()在任何输出之前:

header('Content-Type: text/html; charset=utf-8');

使用php中的Unicode工作很容易只要您意识到大多数字符串函数都无法与Unicode一起使用,并且有些可能会完全操纵字符串。 PHP认为“字符”是1个字节。有时候可以(例如, explode()字节序列并将其用作分离器 - 因此您要寻找的实际字符都没关系)。但是在其他时候,当该函数实际设计用于字符 时,PHP不知道您的文本具有带有Unicode的多字节字符。

一个值得检查的库是 phputf8 。这重写了所有“不良”功能,因此您可以安全地使用UTF8字符串。有类似 mb_string 扩展尝试为您做到这一点的扩展,同样,但是我更喜欢使用图书馆,因为它更便携(但我写大众市场产品,所以这对我来说很重要)。但是,无论如何,phputf8可以在幕后使用MB_String来提高性能。

In addition to setting default_charset in php.ini, you can send the correct charset using header() from within your code, before any output:

header('Content-Type: text/html; charset=utf-8');

Working with Unicode in PHP is easy as long as you realize that most of the string functions don't work with Unicode, and some might mangle strings completely. PHP considers "characters" to be 1 byte long. Sometimes this is okay (for example, explode() only looks for a byte sequence and uses it as a separator -- so it doesn't matter what actual characters you look for). But other times, when the function is actually designed to work on characters, PHP has no idea that your text has multi-byte characters that are found with Unicode.

A good library to check into is phputf8. This rewrites all of the "bad" functions so you can safely work on UTF8 strings. There are extensions like the mb_string extension that try to do this for you, too, but I prefer using the library because it's more portable (but I write mass-market products, so that's important for me). But phputf8 can use mb_string behind the scenes, anyway, to increase performance.

水晶透心 2025-02-20 05:28:38

警告:此答案适用于PHP 5.3.5及更低。请勿将其用于PHP版本5.3.6(2011年3月发布)或更高版本。

PALEC对 pdo + mySQL和破碎的UTF-8编码 。 /p>


我找到了使用

$pdo = new PDO(
    'mysql:host=mysql.example.com;dbname=example_db',
    "username",
    "password",
    array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"));

Warning: This answer applies to PHP 5.3.5 and lower. Do not use it for PHP version 5.3.6 (released in March 2011) or later.

Compare with Palec's answer to PDO + MySQL and broken UTF-8 encoding.


I found an issue with someone using PDO and the answer was to use this for the PDO connection string:

$pdo = new PDO(
    'mysql:host=mysql.example.com;dbname=example_db',
    "username",
    "password",
    array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"));
美人如玉 2025-02-20 05:28:38

就我而言,我使用 mb_split ,它使用正则表达式。因此,我还必须手动确保通过执行 mb_regex_encoding('utf-8'');

作为附带说明,我还通过运行 mb_internal_cencoding()发现了 正则表达式编码为utf-8。 内部编码不是UTF-8,我通过运行来更改它 mb_internal_encoding(“ UTF-8”);

In my case, I was using mb_split, which uses regular expressions. Therefore I also had to manually make sure the regular expression encoding was UTF-8 by doing mb_regex_encoding('UTF-8');

As a side note, I also discovered by running mb_internal_encoding() that the internal encoding wasn't UTF-8, and I changed that by running mb_internal_encoding("UTF-8");.

风吹雪碎 2025-02-20 05:28:38

首先,如果您在5.3之前处于PHP,则不。您有很多问题要解决。

我很惊讶没有人提到 intl 库,一个具有良好支持的库对于 unicode graphemes 字符串操作本地化等等,请参见下文。

我将引用伊丽莎白·史密斯(Elizabeth Smith)的 幻灯片 phpbenelux'14

intl

好:

  • ICU图书馆
  • 标准化环境周围的包装器,每个脚本
  • 格式化
  • 货币格式格式
  • 格式格式格式(替换getText)
  • 日历,日期,时间区域和时间
  • 倾斜器
  • spooofchecker
  • 资源捆绑
  • 转换器
  • IDN支持
  • graphemes
  • collat
  • ​​ionanter

不好:

  • 不支持zend_multibyte不支持zend_multibyte
  • 不支持zend_multibyte, http输入输出转换
  • 不​​支持函数过载

mb_string

  • 启用zend_multibyte支持
  • 支持透明的http in/out编码
  • 为功能提供了一些包装器,例如strtoupper

iconv

  • charset转换
  • 输出输出输出buffer handler
  • Mime编码功能
  • 转换
  • 一些弦乐器(LEN,substr,strpos,strrpos)
  • ,过滤 stream_filter_append($ fp, 'convert.iconv.iso-2022-jp/euc-jp')

数据库

  • mysql:表和连接上的charset和collat​​ion和Collat​​ion(不是整理)。另外,请勿使用mysql -mysqli或pdo
  • postgresql:pg_set_client_encoding
  • sqlite(3):请确保它是用Unicode和intl Support编译的,intl and intl Support

其他一些gotchas

  • 您不能使用php和windows的unicode文件,除非您使用PHP和Windows,否则使用第三部分扩展。
  • 使用exec,请发送ASCII中的所有
  • 如果您
  • 内容

First of all, if you are in PHP before 5.3 then no. You've got a ton of problems to tackle.

I am surprised that none has mentioned the intl library, the one that has good support for Unicode, graphemes, string operations, localisation and many more, see below.

I will quote some information about Unicode support in PHP by Elizabeth Smith's slides at PHPBenelux'14

INTL

Good:

  • Wrapper around ICU library
  • Standardised locales, set locale per script
  • Number formatting
  • Currency formatting
  • Message formatting (replaces gettext)
  • Calendars, dates, time zone and time
  • Transliterator
  • Spoofchecker
  • Resource bundles
  • Convertors
  • IDN support
  • Graphemes
  • Collation
  • Iterators

Bad:

  • Does not support zend_multibyte
  • Does not support HTTP input output conversion
  • Does not support function overloading

mb_string

  • Enables zend_multibyte support
  • Supports transparent HTTP in/out encoding
  • Provides some wrappers for functionality such as strtoupper

ICONV

  • Primary for charset conversion
  • Output buffer handler
  • mime encoding functionality
  • conversion
  • some string helpers (len, substr, strpos, strrpos)
  • Stream Filter stream_filter_append($fp, 'convert.iconv.ISO-2022-JP/EUC-JP')

DATABASES

  • MySQL: Charset and collation on tables and on the connection (not the collation). Also, don't use mysql - mysqli or PDO
  • postgresql: pg_set_client_encoding
  • sqlite(3): Make sure it was compiled with Unicode and intl support

Some other gotchas

  • You cannot use Unicode filenames with PHP and windows unless you use a 3rd part extension.
  • Send everything in ASCII if you are using exec, proc_open and other command line calls
  • Plain text is not plain text, files have encodings
  • You can convert files on the fly with the iconv filter
抱猫软卧 2025-02-20 05:28:38

我唯一添加到这些惊人的答案中,要强调将文件保存在UTF-8编码中,我注意到浏览器可以在将UTF-8设置为代码编码的情况下接受此属性。任何体面的文本编辑器都会向您展示此信息。例如, Notepad ++ 具有用于文件编码的菜单选项,它显示当前编码并使您可以更改它。对于我所有的PHP文件,我都会使用utf-8,而没有a bom

在某个时候,我有人要求我添加对其他人设计的PHP和MYSQL应用程序的支持。我注意到所有文件均在ANSI中编码,因此我必须使用 iconv 转换所有文件,更改数据库表以使用UTF-8字符集和 utf8_general_ci 整理连接之后的数据库抽象层的UTF8'(如果使用5.3.6或更早。否则,您必须在连接字符串中使用charset = utf8),然后更改字符串函数来使用PHP MultiByte String函数等效。

The only thing I would add to these amazing answers is to emphasize on saving your files in UTF-8 encoding, I have noticed that browsers accept this property over setting UTF-8 as your code encoding. Any decent text editor will show you this. For example, Notepad++ has a menu option for file encoding, and it shows you the current encoding and enables you to change it. For all my PHP files I use UTF-8 without a BOM.

Sometime ago I had someone ask me to add UTF-8 support for a PHP and MySQL application designed by someone else. I noticed that all files were encoded in ANSI, so I had to use iconv to convert all files, change the database tables to use the UTF-8 character set and utf8_general_ci collate, add 'SET NAMES utf8' to the database abstraction layer after the connection (if using 5.3.6 or earlier. Otherwise, you have to use charset=utf8 in the connection string) and change string functions to use the PHP multibyte string functions equivalent.

凉风有信 2025-02-20 05:28:38

我最近发现,使用 strtolower()可能会导致数据在特殊字符后截断的问题。

解决方案是使用

mb_strtolower($string, 'UTF-8');

mb_使用多键。它支持更多的字符,但总的来说有点慢。

I recently discovered that using strtolower() can cause issues where the data is truncated after a special character.

The solution was to use

mb_strtolower($string, 'UTF-8');

mb_ uses MultiByte. It supports more characters but in general is a little slower.

十雾 2025-02-20 05:28:38

在php中,您需要使用多重函数函数,或打开 mbstring.func_overload 。这样,如果您的角色占用了多个字节,则像Strlen这样的事情将起作用。

您还需要确定响应的字符集。您可以使用如上所述使用AddDefaultchars,也可以编写返回标头的PHP代码。 (或者您可以在HTML文档中添加元标记。)

In PHP, you'll need to either use the multibyte functions, or turn on mbstring.func_overload. That way things like strlen will work if you have characters that take more than one byte.

You'll also need to identify the character set of your responses. You can either use AddDefaultCharset, as above, or write PHP code that returns the header. (Or you can add a META tag to your HTML documents.)

另类 2025-02-20 05:28:38

我刚刚经历了同一问题,并在PHP手册上找到了一个很好的解决方案。

我将所有文件的编码更改为UTF8,然后在连接上更改了默认编码。这解决了所有问题。

if (!$mysqli->set_charset("utf8")) {
    printf("Error loading character set utf8: %s\n", $mysqli->error);
} else {
   printf("Current character set: %s\n", $mysqli->character_set_name());
}

查看源

I have just gone through the same issue and found a good solution at PHP manuals.

I changed all my files' encoding to UTF8 and then the default encoding on my connection. This solved all the problems.

if (!$mysqli->set_charset("utf8")) {
    printf("Error loading character set utf8: %s\n", $mysqli->error);
} else {
   printf("Current character set: %s\n", $mysqli->character_set_name());
}

View Source

欢烬 2025-02-20 05:28:38

如果您希望MySQL Server决定字符集,而不是php作为客户端(我认为旧行为;首选),请尝试将 skip-character-character-set-client handshake 添加到<代码> my.cnf ,在 [mysqld] 下,重新启动 mySQL

如果您使用UTF-8以外的任何其他内容,这可能会导致麻烦。

If you want a MySQL server to decide the character set, and not PHP as a client (old behaviour; preferred, in my opinion), try adding skip-character-set-client-handshake to your my.cnf, under [mysqld], and restart mysql.

This may cause trouble in case you're using anything other than UTF-8.

山田美奈子 2025-02-20 05:28:38

PHP中的Unicode支持仍然是一个巨大的混乱。虽然它能够转换 iso&nbsp; 8859 string(它内部使用)对于UTF-8,它缺乏与Unicode String一起使用的能力,这意味着所有字符串处理功能都将mangle并破坏您的弦。

因此,您必须使用单独的库进行正确的UTF-8支持,或者自己重写所有字符串处理功能。

简单的部分只是在HTTP标头和数据库等中指定Charset,但是如果您的PHP代码未输出有效的UTF-8,则无关紧要。这是困难的部分,PHP几乎没有任何帮助。 (我认为PHP&nbsp; 6应该可以解决最糟糕的情况,但这还在一段时间之外。)

Unicode support in PHP is still a huge mess. While it's capable of converting an ISO 8859 string (which it uses internally) to UTF-8, it lacks the capability to work with Unicode strings natively, which means all the string processing functions will mangle and corrupt your strings.

So you have to either use a separate library for proper UTF-8 support, or rewrite all the string handling functions yourself.

The easy part is just specifying the charset in HTTP headers and in the database and such, but none of that matters if your PHP code doesn't output valid UTF-8. That's the hard part, and PHP gives you virtually no help there. (I think PHP 6 is supposed to fix the worst of this, but that's still a while away.)

メ斷腸人バ 2025-02-20 05:28:38

最佳答案很棒。这是我在常规 mysql 设置:

// Storage
// Debian. Apparently already UTF-8

// Retrieval
// The MySQL database was stored in UTF-8,
// but apparently PHP was requesting ISO 8859-1. This worked:
// ***notice "utf8", without dash, this is a MySQL encoding***
mysql_set_charset('utf8');

// Delivery
// File *php.ini* did not have a default charset,
// (it was commented out, shared host) and
// no HTTP encoding was specified in the Apache headers.
// This made Apache send out a UTF-8 header
// (and perhaps made PHP actually send out UTF-8)
// ***notice "utf-8", with dash, this is a php encoding***
ini_set('default_charset','utf-8');

// Submission
// This worked in all major browsers once Apache
// was sending out the UTF-8 header. I didn’t add
// the accept-charset attribute.

// Processing
// Changed a few commands in PHP, like substr(),
// to mb_substr()

仅此而已!

The top answer is excellent. Here is what I had to on a regular Debian, PHP, and MySQL setup:

// Storage
// Debian. Apparently already UTF-8

// Retrieval
// The MySQL database was stored in UTF-8,
// but apparently PHP was requesting ISO 8859-1. This worked:
// ***notice "utf8", without dash, this is a MySQL encoding***
mysql_set_charset('utf8');

// Delivery
// File *php.ini* did not have a default charset,
// (it was commented out, shared host) and
// no HTTP encoding was specified in the Apache headers.
// This made Apache send out a UTF-8 header
// (and perhaps made PHP actually send out UTF-8)
// ***notice "utf-8", with dash, this is a php encoding***
ini_set('default_charset','utf-8');

// Submission
// This worked in all major browsers once Apache
// was sending out the UTF-8 header. I didn’t add
// the accept-charset attribute.

// Processing
// Changed a few commands in PHP, like substr(),
// to mb_substr()

That was all!

另类 2025-02-20 05:28:38

当您尝试存储数据时,我想提一下一些内容,以确保

在下面的示例中,您将该缓冲区解码到UTF-8字符串中

const originalName = Buffer.from(file.originalname, 'binary').toString(
      'utf-8',
    );

I would like to mention something when you try to store your data make sure

as an example below you are decoding that buffer into a UTF-8 string

const originalName = Buffer.from(file.originalname, 'binary').toString(
      'utf-8',
    );
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文