Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP-Strlen的行为非常奇怪,相同的事情-不同的结果,lol数字?_Php_Mysql_Unicode_Utf 8_Strlen - Fatal编程技术网

PHP-Strlen的行为非常奇怪,相同的事情-不同的结果,lol数字?

PHP-Strlen的行为非常奇怪,相同的事情-不同的结果,lol数字?,php,mysql,unicode,utf-8,strlen,Php,Mysql,Unicode,Utf 8,Strlen,tresc和tresc\u pelna 同样的类型,同样的内容 相同的内容总共876个字符 通过从数据库中获取数据作为数据\u dodania,p.data\u modyfikacji,p.tresc,p.tresc\u pelna,p.url,count(k.id). Echeon通过 你猜怎么着 这是输出 876----3248 什么 我完全不知道这里发生了什么 请帮帮我,D 这两个字段utf8\u polish\u ci和内容完全相同 结果仍然很糟糕 tresc超过3000。。。什么是

tresc
tresc\u pelna

同样的类型,同样的内容

相同的内容
<代码>总共876个字符

通过
从数据库中获取数据作为数据\u dodania,p.data\u modyfikacji,p.tresc,p.tresc\u pelna,p.url,count(k.id).

Echeon通过

你猜怎么着

这是输出

876----3248

什么

我完全不知道这里发生了什么

请帮帮我,D

这两个字段
utf8\u polish\u ci
和内容完全相同

结果仍然很糟糕


tresc
超过3000。。。什么是。。。怎么用?为什么?

MySQL有两个内置函数,用于确定可变长度项目的长度。一个,统计不同的unicode字符。另一个计算八位字节(字节),为

在PHP中,
strlen()。许多unicode字符串,尤其是utf8编码的字符串,每个字符的八位字节数是可变的。你可以数一数

我发现有时候做
选择十六进制(unicode\u列)
来找出MySQL中隐藏的内容是很有帮助的。仅仅获取列数据就可以让您在使用的MySQL客户机的字符渲染中任由摆布,这可能会让您非常困惑


您的数据库列也可能已对其中的数据进行了实体化(例如,字符串
é;
而不是Unicode字符
é
。如果该实体文本被发送到web浏览器,它将呈现为字母。

MySQL有两个内置函数用于确定可变长度项的长度。一个用于计算不同的Unicode字符,另一个用于计算八位字节(字节),是的

在PHP中,
strlen()

我发现有时候做
SELECT HEX(unicode\u column)
来找出MySQL中隐藏了什么是很有帮助的。仅仅获取列数据就可以让你在使用的MySQL客户端的字符渲染中任由摆布,而且可能会非常混乱


您的数据库列也可能已对其中的数据进行了实体化(例如,字符串
é;
而不是Unicode字符
é
。如果该实体文本被发送到web浏览器,它将呈现为字母。

长度
和字符长度
之间的差异可以解释大多数欧洲文本的比率低于1.2x。它无法解释3248:876,即nea。)rly 4x

也许这是答案的一部分:


  • Htmlentities,例如
    ó;
    ,它需要8个字节来表示一个2字节的utf8字符。我们看不出其中一个字符是否有
    长度
    字符长度
    之间的差异可以解释大多数欧洲文本的比率低于1.2x。它无法解释3248:876,这几乎是4x

    也许这是答案的一部分:


    • Htmlentities,例如
      ó;
      ,它需要8个字节来表示一个2字节的utf8字符。我们看不出其中一个字段是否有
      这些字段的排序规则是什么?@tkausl都是
      utf8\u polish\u ci
      ,它们都有完全相同的内容,并且字符集不会被手动更改?也就是说,它们都是
      utf8
      ?@tkausl始终为utf-8,当您回送这两个em时,它们的输出是相同的?这些字段的排序规则是什么?@tkausl都是
      utf8\u polish\u ci
      ,它们的内容完全相同,字符集也不会手动更改?即,它们都是
      utf8
      ?@tkausl始终为utf-8,当您回送这两个em时,它们的输出是相同的输出?