我想用编程语言创建一个左垫功能。该函数将带有前导字符的字符串填充到指定的总长度。字符串是用这种语言编码的 UTF-16。
Unicode 中有一些东西使它变得复杂:
- 代理: 2 个代理字符 = 1 个 unicode 字符
- 组合字符: 1 个非组合字符 + 任意数量的组合字符 = 1 个可见字符
- 不可见字符: 1 个不可见字符 = 0 个可见字符
还需要考虑哪些其他因素,如何处理?
我想用编程语言创建一个左垫功能。该函数将带有前导字符的字符串填充到指定的总长度。字符串是用这种语言编码的 UTF-16。
Unicode 中有一些东西使它变得复杂:
还需要考虑哪些其他因素,如何处理?
当你第一次开始尝试理解某事时,这真的很令人沮丧。我们都去过那里。但是,虽然很容易称它为愚蠢,每个人都把它称为愚蠢,但你不会走得太远。以这样的态度,你是在暗示那些理解它的人也是愚蠢的,因为他们把时间浪费在如此明显愚蠢的事情上。在将理解它的人称为愚蠢之后,任何理解它的人都不太可能花时间向你解释它。
我理解这种沮丧。Unicode 真的很复杂,在我理解它之前对我来说是一个巨大的痛苦,对于很多我没有经验的事情来说仍然是一个痛苦。但它如此复杂的原因并不是因为制造它的人很愚蠢并试图毁掉你的生活。它很复杂,因为它试图提供一种表示曾经使用过的每个人类书写系统的标准方式。书写系统异常复杂,纵观历史,开发一种新的、不同的书写系统一直是一个相当标准的部分,可以将自己识别为与河对岸或下一个山脉的人们不同的文化。您自己首先根据您说的语言将自己识别为匈牙利人。曾经试图念出一位匈牙利教授的名字,我知道匈牙利语与英语相比非常复杂,就像英语与匈牙利语相比非常复杂。如果我在匈牙利语方面遇到麻烦并问你:“男孩,匈牙利语肯定是一种愚蠢的语言,你会有什么感觉!一定是白痴设计的!对了,这个词怎么发音??”</p>
没有简单的方法可以用非常简单的方式表达本质上复杂的东西。人类书写系统本质上是复杂的,并且故意彼此不同。尽管 Unicode 很复杂,但它比人们以前必须做的要好,当时每个国家都没有一个复杂的标准,而是有多个复杂的标准,你必须了解所有不同的“标准”。</p>
我不确定你的一般生活策略是什么,但是当我不明白某事时,我通常会选择一些关于该主题的教科书,通读教科书,然后编写示例。一本好的教科书不仅会告诉你事情是怎样的,你需要做什么,还会告诉你事情是如何发展的,以及为什么你需要做你需要做的事情。
我发现Unicode Demysitifed是一本很棒的书,而新书Unicode Explained在亚马逊上的评分甚至更高。