gpt4 book ai didi

PHP UTF-8 问题 - 如果我在 PHP 中创建一个字符串...它是 UTF-8 格式的吗?

转载 作者:可可西里 更新时间:2023-10-31 23:56:41 24 4
gpt4 key购买 nike

在 PHP 中,如果我创建这样的字符串:

$str = "bla bla here is my string";

然后我可以使用 mbstring 函数将该字符串作为 UTF8 进行操作吗?

// Will this work?$str = mb_strlen($str); 

此外,如果我有另一个字符串,我知道是 UTF-8(假设它是一个 POSTed 表单值,或者来自数据库的 UTF-8 字符串),我可以将它们连接起来吗二、有没有问题?

// What about this, will this work? $str = $str . $utf8_string_from_database;

最佳答案

第一个问题:这取决于字符串中的具体内容。

在 PHP 中(直到 PHP5,无论如何),字符串只是字节序列。没有与它们关联的隐含或显式字符集;这是程序员必须跟踪的事情。所以,如果你只在引号之间放置有效的 UTF-8 字节(如果文件本身被编码为 UTF-8 则相当容易),那么字符串将是 UTF-8,你可以安全地在其上使用 mb_strlen()。

此外,如果您使用的是 mbstring 函数,您需要明确地告诉它您的字符串是什么字符集,或者使用 mbstring.internal_encoding。或作为任何 mbstring 函数的最后一个参数。

第二个问题:是的,但要注意。

两个独立有效的 UTF-8 字符串可以安全地按字节连接(就像使用 PHP 的 . 运算符一样)并且仍然是有效的 UTF-8。但是,如果不自己做一些工作,您永远无法确定 POSTed 字符串是有效的 UTF-8。如果您仔细设置连接字符集,数据库字符串会更容易一些,因为大多数 DBMS 会为您进行任何转换。

关于PHP UTF-8 问题 - 如果我在 PHP 中创建一个字符串...它是 UTF-8 格式的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/558033/

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