草庐IT

mb_strtoupper

全部标签

php - mb_detect_encoding 将 ASCII 检测为 UTF-8?

我正在尝试自动将导入的IPTC元数据从图像转换为UTF-8,以便基于PHPmb_函数存储在数据库中。目前看起来是这样的:$val=mb_convert_encoding($val,'UTF-8',mb_detect_encoding($val));但是,当mb_detect_encoding()被提供一个ASCII字符串(Latin1字段中192-255的特殊字符)时,它会将其检测为UTF-8,因此在下面的尝试中将所有内容都转换为为了正确使用UTF-8,所有特殊字符都被删除。我尝试通过查找Latin1值来编写自己的方法,如果没有出现,我将继续让mb_detect_encoding决定它

php - mb_strlen() 够了吗?

在PHP中计算UTF-8字符串的长度时,我使用mb_strlen()。例如:if(mb_strlen($name,'UTF-8')由于文本字段可以接受任何语言(多语言),我想确保PHP能够正确计算多语言UTF-8字符。这是否足够,还是我需要使用其他方法?我担心PHP可能会因为某些原因出错,或者我只是持怀疑态度,但我不希望人们绕过重要的验证,因为PHP出错了。 最佳答案 正确if(mb_strlen($name,'UTF-8')确保标题正确HTTP-header(Content-Type:text/html;charset=UTF-8

PHP:调用未定义的函数 mb_strlen() - 在启用了 mbstring 的自定义编译的 PHP 上

我有这个自定义编译的PHP(v5.3.3),启用了以下扩展(通过配置):./configure--prefix=/usr/local/php5.3.3--with-config-file-path=/usr/local/apache2/conf--with-apxs2=/usr/local/apache2/bin/apxs--with-bz2--with-curl=/usr/lib--with-curlwrappers--with-freetype-dir=/usr/local--with-gd=/usr/local--with-gettext--with-gmp--with-icon

mysql - 错误 1115 (42000) : Unknown character set: 'utf8mb4'

我有一个MySQL转储,我试图用它来恢复:mysql-u"username"-p"password"--host="127.0.0.1"mysql_db但是,这引发了错误:ERROR1115(42000)atline3231:Unknowncharacterset:'utf8mb4'这是第3231-3233行:/*!50003SETcharacter_set_client=utf8mb4*/;/*!50003SETcharacter_set_results=utf8mb4*/;/*!50003SETcollation_connection=utf8mb4_general_ci*/;我使

mysql - 错误 1115 (42000) : Unknown character set: 'utf8mb4'

我有一个MySQL转储,我试图用它来恢复:mysql-u"username"-p"password"--host="127.0.0.1"mysql_db但是,这引发了错误:ERROR1115(42000)atline3231:Unknowncharacterset:'utf8mb4'这是第3231-3233行:/*!50003SETcharacter_set_client=utf8mb4*/;/*!50003SETcharacter_set_results=utf8mb4*/;/*!50003SETcollation_connection=utf8mb4_general_ci*/;我使

php - 默认的 mb_internal_encoding() 值来自哪里?

如果我要编写一个新的php文件,并包含echo"currentmb_internal_encoding:".mb_internal_encoding(),输出值从何而来?它是如何“决定”/如何治理的?背景:我写了一个web应用程序,我认为我已经完成了将整个站点设置为utf-8的所有操作,但发现我仍然需要手动设置该值... 最佳答案 这取决于mbstring.internal_encodinginphp.ini的设置. 关于php-默认的mb_internal_encoding()值来自哪

php - preg_split 与 mb_split

根据PHPmanual,PCRE正则表达式的u修饰符为模式和主题字符串启用UTF-8支持。考虑到这一点,使用带有u修饰符的PCRE表达式和相应的mb_*多字节字符串函数之间有什么区别吗?(假设所有字符串都是UTF-8编码。)例如,考虑preg_split与mb_split:两者preg_split('/'.$pattern.'/u',$string);和mb_split($pattern,$string);似乎返回相同的结果。那么,应该优先选择哪一个呢?这有关系吗? 最佳答案 主要区别在于preg_函数使用pcrelibrary,当

php - PHP 中 mb_detect_order() 的奇怪行为

我想检测一些文本的编码(使用PHP)。为此,我使用mb_detect_encoding()函数。问题是,如果我使用mb_detect_order()函数更改可能编码的顺序,函数会返回不同的结果。考虑下面的例子$html=但是,如果您更改mb_detect_order()中的编码顺序,结果将不同:mb_detect_order(array('EUC-JP','UTF-8','SJIS','eucJP-win','SJIS-win','JIS','ISO-2022-JP','ISO-8859-1','ISO-8859-2'));die($originalEncoding);//$origi

php - Symfony 4,Postgres - `Invalid value for parameter "client_encoding": "utf8mb4"` on running doctrine command

问题我对postgres10.5和symfony4应用程序进行了全新设置,在php7.1上运行。但是当我尝试运行迁移时。我不断收到以下Invalidvalueforparameter"client_encoding":"utf8mb4"错误。重现步骤在.env文件上,根据您的设置修改DSN以更正值,例如。我的是DATABASE_URL="pgsql://postgres:password@db:5432/a_db"。使用phpbin/consolemake:entity创建一个实体(任何人都可以)制作迁移文件phpbin/consolemake:migration预期结果我应该收到成功

php - 如何防止显示菱形问号符号,即使使用 mb_substr 和 utf-8

我已经阅读了一些其他问题,尝试了答案但最后没有结果。我得到的是例如这个Μήπωςθαέπρεπενα�...而且我无法删除那个奇怪的问号。我所做的是获取RSS提要的内容,该内容也被编码为内容使用希腊语。有什么办法可以解决这个问题吗?description=strip_tags($entry->description);echomb_substr($entry->description,0,490);?>... 最佳答案 这就是答案mb_substr($entry->description,0,490,"UTF-8");