【问题标题】:strtolower() providing faulty character?strtolower() 提供错误字符?
【发布时间】:2017-11-10 12:24:59
【问题描述】:

我使用strtolower() 将字符串转换为小写。当稍后在代码中使用 iconv() 将这些字符串从 UTF-8 转换为 ANSI (Windows-1252) 时,函数会失败,除非使用了//IGNORE 语句。

我将违规字符识别为小写德语 元音变音 ü。但是,在使用ü 之前,有一个大写的Ü,可以很好地转换。不同之处在于包含小写ü 的字符串是使用strtolower() 创建的。

为什么strtolower() 给我无法转换的结果或错误的编码?如何解决这个问题?

【问题讨论】:

  • 你不是已经发布过类似的东西了吗? stackoverflow.com/questions/47221756/…
  • 考虑使用mb_strtolower
  • 我确实发布了关于如何检测违规角色的其他问题。现在我已经找到它并找到了问题的原因,我打开了一个新问题来了解如何解决它。完全不同的东西。投反对票完全没有道理,不管是谁做的。 @pr1nc3 – 阅读问题的内容。它根本不是重复的。
  • @SquareCat “现在我已经找到它并找到了问题的原因,” - 要么发布答案以将其标记为已解决,要么将其删除。否则,它仍然被认为是打开的。
  • @Fred-ii- 去阅读问题 + cmets。我正在等待评论者发布他的答案,以便我接受。

标签: php character-encoding iconv


【解决方案1】:

使用支持多字节字符的mb_strtolower

// Tell the function what charset you are using as second param. 
echo mb_strtolower($str, 'UTF-8');

【讨论】:

    猜你喜欢
    • 2017-05-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-21
    • 2015-02-08
    相关资源
    最近更新 更多