doulun1915 2015-04-02 13:08
浏览 47
已采纳

字符串不能以Å,Ä,Ö开头

Why is it, when i shorten a string. Letter "å, ä, ö" becomes "?"?
If i use the Name "Örjan" it becomes "Orjan".
But when i use "Björn", it works all fine?

PHP

//Create initials
$usr_fname_f_letter = $_POST['usr_fname'];
$usr_fname_f_letter = $usr_fname_f_letter[0];
$usr_lname_f_letter = $_POST['usr_lname'];
$usr_lname_f_letter = $usr_lname_f_letter[0];
$usr_inits = $usr_fname_f_letter .= $usr_lname_f_letter;

echo $_POST['usr_fname'];
echo '<br>';
echo $_POST['usr_lname'];
echo '<br>';
echo $usr_fname_f_letter;
echo '<br>';
echo $usr_lname_f_letter;
echo '<br>';
echo $usr_inits;
echo '<br>';

RESULT

Örjan
Björnsson
�B
B
�B

  • 写回答

2条回答 默认 最新

  • dongmou2389 2015-04-02 13:25
    关注
    $usr_fname_f_letter = $usr_fname_f_letter[0];
    

    simply takes the first (zero offset) byte from $usr_fname_f_letter; but you're using a multibyte character set and that's like chopping part of a character in half.

    Use

    mb_substr($usr_fname_f_letter, 0, 1, 'UTF-8')
    

    because the mb_* functions are multi-byte character set aware; and work in characters, not in bytes

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号
  • ¥15 基于单片机的靶位控制系统
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测