-
-
Notifications
You must be signed in to change notification settings - Fork 774
Closed
Labels
Description
// 内存型
$pinyin = new Pinyin('Overtrue\Pinyin\MemoryFileDictLoader');
$str = $pinyin->permalink('乌拉', '');
var_dump($str === 'wula');
$str = $pinyin->permalink('拉圭', '');
var_dump($str === 'lagui');
$str = $pinyin->permalink('乌圭', '');
var_dump($str === 'wugui');
$str = $pinyin->permalink('乌拉圭', '');
var_dump($str === 'wulagui');
var_dump(strlen($str));
var_dump(mb_strlen($str));
var_dump($str);
输出
boolean true
boolean true
boolean true
boolean false
int 7
int 8
string 'wul�gui'
瞄了代码,
data/words_0 line 6420
'乌拉圭' => ' wù lɑ guī',
转换后拼音
wù lɑ guī
貌似走到
pinyin.php formatTone() line 340 ~ 358
只转换了 ā á ǎ à,忽略了轻声的 ɑ
盼处理。
之所以遇到这个问题是因为在 macos 通过 brew 安装的 httpd 和 php 下,乌拉圭转成拼音出现乱码导致数据库写入失败
General error: 1366 Incorrect string value: '\xE9\x91gui'
而同一套代码,用 mamp pro 的跑,不会出错,差异未知。