mb_substr 没有正确截断汉字
mb_substr not truncating Chinese characters properly
当我运行这段代码时:
$x = '国際交流基金 - 「松島図屏風」他 日米所蔵作品による夢の競演「宗達:創造の波」展開催';
var_dump(mb_substr($x, 0, 80));
我希望字符串不会被处理运行,因为它少于 80 个字符。
然而,这是输出:
string(80) "国際交流基金 - 「松島図屏風」他 日米所蔵作品による夢�"
知道为什么 mb_substr t运行 匹配它(而不是 t运行 正确匹配最后一个字符)吗?
设置函数使用的正确编码:
- 作为第四个参数 - 例如
mb_substr($x, 0, 80, "UTF-8")
- 或通过
mb_internal_encoding()
prior to calling mb_substr()
- 或 runtime configuration.
$x = '国際交流基金 - 「松島図屏風」他 日米所蔵作品による夢の競演「宗達:創造の波」展開催';
var_dump(mb_substr($x, 0, 80, "UTF-8"));
输出:
string(123) "国際交流基金 - 「松島図屏風」他 日米所蔵作品による夢の競演「宗達:創造の波」展開催"
当我运行这段代码时:
$x = '国際交流基金 - 「松島図屏風」他 日米所蔵作品による夢の競演「宗達:創造の波」展開催';
var_dump(mb_substr($x, 0, 80));
我希望字符串不会被处理运行,因为它少于 80 个字符。
然而,这是输出:
string(80) "国際交流基金 - 「松島図屏風」他 日米所蔵作品による夢�"
知道为什么 mb_substr t运行 匹配它(而不是 t运行 正确匹配最后一个字符)吗?
设置函数使用的正确编码:
- 作为第四个参数 - 例如
mb_substr($x, 0, 80, "UTF-8")
- 或通过
mb_internal_encoding()
prior to callingmb_substr()
- 或 runtime configuration.
$x = '国際交流基金 - 「松島図屏風」他 日米所蔵作品による夢の競演「宗達:創造の波」展開催';
var_dump(mb_substr($x, 0, 80, "UTF-8"));
输出:
string(123) "国際交流基金 - 「松島図屏風」他 日米所蔵作品による夢の競演「宗達:創造の波」展開催"