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

问题描述 投票:0回答:4

我正在使用

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

问题来了:

stripos("ø", "Ø")

返回错误。同时

stripos("Ø", "Ø")

返回 true。

正如您所看到的,在这种情况下,该函数似乎执行大小写不敏感搜索。

该函数对于

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

php strpos multibyte multibyte-functions multibyte-characters
4个回答
9
投票

请使用

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


3
投票

您需要mb_stripos


1
投票

mb_stripos 会处理这个问题。


1
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.