问题:
中文单引号在 CCB 中显示正常,发布到游戏后不显示,触发缺字符警告;
原因:
1、cocosbuilder 的 bug,在 CCB 中输入英文‘或”时,cococsbuilder 会自动将英文单双引号转换为中文单双引号;
cocosbuilder 的 label 组件以字符串形式存取 label text,且将转义符作为普通字符读取,故无法支持输入文案中出现英文单双引号;
2、因而,19 年程序在 CCB 的发布脚本中加了一段逻辑,人为将 CCB 中的全角右单引号(ASCII 码 8217)修正成了英文单引号(ASCII 码 39),以避免英文单引号显示不出来;
但该方案只能保证游戏中正常显示英文单引号;如果字体文件中不存在中文单引号,那cococbuilder 将不显示输入的英文单引号;如果字体文件中存在中文单引号,那么 cocosbuilder 中将会显示为中文单引号;
解决方案:
1、游戏中使用英文单引号:
保证字体文件中同时存在中、英文单引号;
默认认为 cocosbuilder 中显示中文单引号就是英文单引号(发布到游戏时程序脚本会将中文单引号重新转换为英文单引号);
2、 如果已经出好的字体中只有中文单引号,可按如下操作:
(英文单引号 ASCII码:39;中文全角右单引号 ASCII 码:8217)
3、 如果已经出好的字体中只有英文单引号,可按如下操作:
复制 id=39 这一行,改为 id=8217