반응형
멀티바이트 문자 인코딩용 ucfirst() 함수
기능에 대해 물어봤습니다.그러나 외국어를 사용할 경우 대문자로 변환되지 않으므로 다음을 사용해야 합니다.
mb_strtolower($a,"utf8");
하지만 어떻게 해야 하죠?ucfirst()
기능하고 있습니까?인코딩 타입을 설정할 수 있는 유사한 기능은 없습니다.
거기에는 없다mb_ucfirst
이미 눈치채셨듯이 기능을 합니다.가짜로 할 수 있다mb_ucfirst
둘로mb_substr
:
function mb_ucfirst($string, $encoding)
{
$firstChar = mb_substr($string, 0, 1, $encoding);
$then = mb_substr($string, 1, null, $encoding);
return mb_strtoupper($firstChar, $encoding) . $then;
}
이것은 보다 간결한 해결책입니다만, 다소 비슷합니다.ucwords
기능:
$final_string = mb_convert_case($your_string, MB_CASE_TITLE, 'UTF-8');
한 단어로 구성된 문자열을 대문자로 만들어야 하는 경우 가장 좋은 솔루션입니다.
function mb_ucfirst($string)
{
return mb_strtoupper(mb_substr($string, 0, 1)).mb_substr($string, 1);
}
2019-11-18 현재 stackoverflow의 누구도 이 점을 제대로 파악하지 못한 것 같습니다.다음은 mb_ucfirst()를 userland에 구현하는 방법입니다.
function mb_ucfirst(string $str, string $encoding = null): string
{
if ($encoding === null) {
$encoding = mb_internal_encoding();
}
return mb_strtoupper(mb_substr($str, 0, 1, $encoding), $encoding) . mb_substr($str, 1, null, $encoding);
}
if (!function_exists('mb_ucfirst'))
{
function mb_ucfirst($value)
{
return mb_strtoupper(mb_substr($value, 0, 1)) . mb_substr($value, 1);
}
}
웹페이지에서 cp1250을 사용하고 있는데 UU mb_ucfirst는 동작하지 않기 때문에 업그레이드가 거의 이루어지지 않습니다.
function mb_ucfirst($string)
{
$main_encoding = "cp1250";
$inner_encoding = "utf-8";
$string = iconv($main_encoding, $inner_encoding , $string );
$strlen = mb_strlen($string);
$firstChar = mb_substr($string, 0, 1, $inner_encoding);
$then = mb_substr($string, 1, $strlen - 1, $inner_encoding);
return $string = iconv($inner_encoding, $main_encoding , mb_strtoupper($firstChar, $inner_encoding) . $then );
}
/*This worked correctly for me*/
function mb_ucfirst($string, $encoding='UTF-8')
{
$firstChar = mb_substr($string, 0, 1, $encoding);
$then = mb_substr($string, 1, mb_strlen($string, $encoding)-1, $encoding);
return mb_strtoupper($firstChar, $encoding) . $then;
}
$string = trim(preg_replace('/\s+/', ' ', $string));
$string_ar = explode(' ', mb_strtolower($string,'utf-8'));
foreach($string_ar as $key => $value {
$string_str .= mb_convert_case(mb_substr(trim($value), 0, 1), MB_CASE_TITLE, 'utf-8')
. mb_substr(trim($value),1)
. ' ';
}
$string = trim($string_str);
언급URL : https://stackoverflow.com/questions/2517947/ucfirst-function-for-multibyte-character-encodings
반응형
'programing' 카테고리의 다른 글
설정에 비 Python 파일 포함.화이 (0) | 2022.10.27 |
---|---|
mysql이 재시작되지 않음 (0) | 2022.10.27 |
개체 유형의 이름을 가져옵니다. (0) | 2022.10.27 |
org.w3c.dom을 변환하려면 어떻게 해야 하나요?개체를 문자열에 문서화하시겠습니까? (0) | 2022.10.27 |
Python에서 알려진 수의 요소로 목록 초기화 (0) | 2022.10.27 |