如何使 stripos() 处理多字节字符串?

发布于 2024-10-27 11:14:14 字数 401 浏览 7 评论 0原文

我正在使用 stripos() 函数检查一个字符串是否位于另一个字符串内部,忽略任何情况。

问题是:

stripos("ø", "Ø")

返回 false。而

stripos("Ø", "Ø")

返回 true。

正如您可能看到的,在这种情况下,该函数似乎执行不区分大小写的搜索。

该函数对于 ÆæÅå 等字符也有同样的问题。这些是丹麦字符。

I am using the stripos() function to check if a string is located inside another string, ignoring any cases.

Here is the problem:

stripos("ø", "Ø")

returns false. While

stripos("Ø", "Ø")

returns true.

As you might see, it looks like the function does NOT do a case-insensitive search in this case.

The function has the same problems with characters like Ææ and Åå. These are Danish characters.

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

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

发布评论

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

评论(4

哀由 2024-11-03 11:14:14

使用 mb_stripos() 代替。它具有字符集感知能力,并且可以处理多字节字符集。 stripos() 是过去只有 ASCII 并且所有字符都只有 1 个字节的美好时光的延续。

Use mb_stripos() instead. It's character set aware and will handle multi-byte character sets. stripos() is a holdover from the good old days when there was only ASCII and all chars were only 1 byte.

南城追梦 2024-11-03 11:14:14

您需要mb_stripos

You need mb_stripos.

静谧幽蓝 2024-11-03 11:14:14

mb_stripos 将处理这个问题。

mb_stripos will take care of this.

葬花如无物 2024-11-03 11:14:14

正如其他解决方案所说,首先尝试使用 mb_stripos()。但如果使用此函数没有帮助,请检查 php 文件的编码。将其转换为 UTF-8 并保存。 经过几个小时的研究,这对我来说是成功的。

As the other solutions say, try first with mb_stripos(). But if using this function doesn't help, check the encoding of your php file. Convert it to UTF-8 and save it. That did the trick for me after hours of research.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文