【发布时间】:2021-06-08 23:30:51
【问题描述】:
当我从数据库加载“Österreich”时,它与我的文件名“Österreich”不匹配。这就是问题所在。
我有一个名为“Österreich.php”的文件,我想从相应的目录中读取它。当我在“Österreich”(不是“.php”)上使用strlen() 时,它返回 12,但是,它应该是 10。这会导致问题,因为我想用它和它从数据库中加载数据,无论出于何种原因,似乎是一个“不同”的词。
有什么想法吗?
【问题讨论】:
-
strlen("Österreich");返回 11。因此,变音符号算作一个字符,或者需要 2 个字节来表示带有变音符号的字符 O。使用mb_strlen。 -
从
readdir()的目录加载时数据是否可能不同? -
我不知道,您需要显示可以复制 12 的
strlen的代码。但是mb_strlen在处理多字节内容时应该可以工作。 -
好吧,即使它是 11(如您的示例中所示)也会导致问题。 Österreich 显然有 10 个字符。为什么这里这么复杂?
-
mb_strlen返回 10。