ucfirst()与scandinavic字符无法正常工作

时间:2015-08-04 13:31:46

标签: php string special-characters ucfirst

如何让ucfirst()使用斯堪的纳维奇字符?

$str = "SÄKYLÄ";
echo ucfirst(strtolower($str)); //prints SÄkylÄ

一种可能是使用mb_convert_case(),但我想知道是否可以使用ucfirst()

$str = "SÄKYLÄ";
echo mb_convert_case($str, MB_CASE_TITLE, "UTF-8"); //prints Säkylä

字符串大写的哪个函数更快?

1 个答案:

答案 0 :(得分:3)

此处的问题不是ucfirst() strtolower()。您必须使用mb_strtolower()来获取小写字符串,例如

echo ucfirst(mb_strtolower($str));
           //^^^^^^^^^^^^^^ See here

您还可以在commentsmanual中找到ucfirst()的多字节版本:

  

简单的多字节ucfirst():

<?php

   function my_mb_ucfirst($str) {
       $fc = mb_strtoupper(mb_substr($str, 0, 1));
       return $fc.mb_substr($str, 1);
   }

来自手册comment

的plemieux代码