Thanks to visit codestin.com
Credit goes to github.com

Skip to content

乌拉圭有妖怪,轻声的 ɑ 未被替换为 a #119

@yueim

Description

@yueim
// 内存型
$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 的跑,不会出错,差异未知。

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions