|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
[2010-09-10 12:46 UTC] trane at gol dot com
Description: ------------ (PHP 5.3.2 (cli) (built: Aug 7 2010 00:04:41) Copyright (c) 1997-2010 The PHP Group Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies) When trying to extract a single character from a UTF-8-encoded Japanese string, instead of the expected character, one gets the dreaded black-diamond-question-mark-of-death. Test script: --------------- $s_string = "静岡は蒸し暑いです。"; echo $s_string[3], "<p />"; // expected output is 蒸 // actual output is � print_r($s_string[3]); // expected output is 蒸 // actual output is � echo "<p />"; $sub = substr($s_string, 3, 1); echo $sub, "<p />"; // expected output is 蒸 // actual output is � Expected result: ---------------- Expected output is 蒸 Actual result: -------------- Actual output is � PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
|
|||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Tue Oct 28 18:00:01 2025 UTC |
This is not a bug. substr and $str[n] or $str{n} treat the string as a byte array. If you want to get the n-th Unicode code point, use mb_substr.