在Smalltalk实现中测试Unicode支持的正确方法是什么?

时间:2011-07-30 21:41:45

标签: unicode smalltalk pharo visualworks gnu-smalltalk

鉴于任何Smalltalk风格,我应该如何检查是否支持Unicode?如果没有支持,我如何检测丢失的级别(VM,字体,转换器等)?

2 个答案:

答案 0 :(得分:5)

在VM级别,您可以尝试Character codePoint: 256Character codePoint: 65536(某些Smalltalks可能会使用value:而不是codePoint:。转换器API在方言之间也有所不同,但如果VM支持Unicode,转换器也是如此。

据我所知,没有Smalltalk完全支持Unicode算法(大小写折叠,字符属性等),但有些可能支持双向文本。例如,GNU Smalltalk从GTK +和Pango免费获得。

答案 1 :(得分:4)

我认为您的意思是手动检查您打算使用的特定风味或风味,因为我认为没有任何自动化方式。想到两件事。首先,阅读文档。其次,尝试将一些带有任意unicode字符的文本输入到窗口中,看看它们是否显示。如果他们这样做,你很好。如果他们不这样做,那么问题可能在于输入,特定平台上可用的字体,表示角色的基本能力或其他问题,这是一个有趣的问题。您还可以尝试查找用于处理特定编码的API(支持Unicode是一个相当模糊的术语)并尝试读取和写入包含其中一些字符的文件。或者您可以询问某人您感兴趣的特定风味是否支持您想要使用的特定功能。

对于VisualWorks,答案可能是肯定的,但它将取决于您想要做什么。例如,可以显示从右到左语言的字符,但使用它们进行文本编辑不会很好。