GO和PHP在chr()函数处理后,PHP字符串合并后又能正确显示,而Go乱码呢?
最近在做一个php项目到go的迁移 遇到这样一个问题
php在chr函数处理后 能正确打印出文字,而Go会乱码
PHP代码如下
// 码点值
$a = [
228, 184, 128, 228, 184, 170, 230, 152, 159, 230,
156, 159, 229, 183, 166, 229, 143, 179, 9, 56, 48,
50, 54, 57, 51, 56, 9, 112, 104, 111, 110, 101
];
$result = '';
foreach ($a as $value) {
$result .= chr($value);
}
var_dump($result);
结果:string(32) "一个星期左右 8026938 phone"
Go代码如下:
arr := [500] rune{228, 184, 128, 228, 184, 170, 230, 152, 159, 230,156, 159, 229, 183, 166, 229, 143, 179, 9, 56, 48,50, 54, 57, 51, 56, 9, 112, 104, 111, 110, 101}
result1 := ""
for v := range arr {
result1 += string(v)
}
fmt.Println(result1)
// 结果:bä¸ä¸ªææå·¦å³ 8026938 phone
感谢帮忙!
中文字符非单个字节可表示。你需要用字节切片类型,面非
rune
数组, 如此这般即可