如何将Unicode字符串填充到特定的可见长度?

时间:2013-08-02 17:58:59

标签: string unicode language-agnostic text-justify

我想用编程语言创建左键盘功能。该函数将带有前导字符的字符串填充到指定的总长度。字符串是用这种语言编码的UTF-16。

Unicode中有一些东西让它变得复杂:

  • 代理: 2个代理字符= 1个unicode字符
  • 组合字符:1个非组合字符+任意数量的组合字符= 1个可见字符
  • 不可见的字符: 1个不可见字符= 0个可见字符

还有哪些其他因素需要考虑,以及如何处理?

1 个答案:

答案 0 :(得分:1)

当你第一次开始尝试理解某些东西时,它真的很令人沮丧。我们都去过那儿。但是,虽然很容易把它称为愚蠢而且每个人都把它变得愚蠢,但你不会做得那么远。有了这样的态度,你暗示那些理解它的人也因为把时间浪费在如此明显愚蠢的事情上而愚蠢。在打电话给那些理解愚蠢的人之后,任何理解它的人都不太可能花时间向你解释。

我理解沮丧。 Unicode非常复杂,在我理解它之前对我来说是一个巨大的痛苦,而且对于我没有经验的很多东西来说仍然很痛苦。但它之所以如此复杂的原因并不是因为制造它的人是愚蠢的并试图破坏你的生活。它很复杂,因为它试图提供一种表示所用人类书写系统的标准方法。写作系统非常复杂,在整个历史中,开发一个新的和不同的书写系统已经成为一个相当标准的部分,将自己视为与河流或下一个山脉的人们不同的文化。你自己开始根据你说的语言认定自己是匈牙利人。曾经试图发音匈牙利教授的名字,我知道匈牙利语与英语相比非常复杂,正如英语与匈牙利语相比非常复杂。如果我遇到匈牙利人的问题,你会怎么想?“男孩,匈牙利人肯定是一种愚蠢的语言!它一定是白痴设计的!顺便问一下,我怎么发音这个词?“

没有简单的方法可以用非常简单的方式表达本质上复杂的东西。人类书写系统本质上是复杂的并且有意地彼此不同。像Unicode一样复杂,它比人们以前做的更好,而不是一个复杂的标准,每个国家都有多个复杂的标准,你必须了解所有不同的'标准'。

我不确定你的一般生活策略是什么,但是当我不理解某些东西时我通常会做的就是找一些关于这个主题的教科书,阅读教科书并制定实例。一本好的教科书不仅会告诉你事情是怎样的,你需要做什么,还会告诉你他们如何做到这一点以及为什么你需要做你需要做的事情。

我发现Unicode Demysitifed是一本优秀的书,而新书Unicode Explained在亚马逊上的评分更高。