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

String 如何将Unicode字符串填充到特定的可见长度?,string,unicode,language-agnostic,text-justify,String,Unicode,Language Agnostic,Text Justify,我想用编程语言创建一个左键盘函数。函数将带前导字符的字符串填充到指定的总长度。字符串用这种语言进行UTF-16编码 Unicode中有一些东西使其变得复杂: 代理项:2个代理项字符=1个unicode字符 组合字符:1个非组合字符+任意数量的组合字符=1个可见字符 不可见字符:1个不可见字符=0个可见字符 还有哪些其他因素需要考虑,以及如何处理这些因素?当你刚开始尝试理解一些东西时,真的很令人沮丧。我们都去过那里。但是,尽管很容易称之为愚蠢,也很容易称之为每个制造愚蠢的人,但你不会做得太远。

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

Unicode中有一些东西使其变得复杂:

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

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

当你刚开始尝试理解一些东西时,真的很令人沮丧。我们都去过那里。但是,尽管很容易称之为愚蠢,也很容易称之为每个制造愚蠢的人,但你不会做得太远。有了这样的态度,你就意味着那些真正理解它的人也会因为在一些明显愚蠢的事情上浪费时间而愚蠢。在称真正理解它的人愚蠢之后,任何真正理解它的人都不太可能花时间向你解释它

我理解这种挫折感。Unicode真的很复杂,在我理解它之前,这对我来说是一个巨大的痛苦,对于很多我没有经验的事情来说,这仍然是一个痛苦。但它如此复杂的原因并不是因为制作它的人很愚蠢,试图毁掉你的生活。它很复杂,因为它试图提供一种标准的方式来表示曾经使用过的每个人类书写系统。书写系统极其复杂,纵观历史,开发一种新的、不同的书写系统一直是确定自己是一种不同于河对岸或下一个山脉的人的文化的相当标准的一部分。首先,你要根据自己所说的语言来确定自己是匈牙利人。我曾经试着念过一位匈牙利教授的名字,我知道匈牙利语和英语相比非常复杂,就像英语和匈牙利语相比非常复杂一样。如果我在匈牙利语上遇到麻烦,问你,“小子,匈牙利语真是一种愚蠢的语言!它一定是白痴设计的!顺便问一下,这个词怎么发音??”

没有一种简单的方式可以用一种非常简单的方式来表达一种内在复杂的东西。人类的书写系统本质上是复杂的,并且有意地彼此不同。尽管Unicode非常复杂,但它比人们以前所做的要好,当时每个国家都有多个复杂的标准,而不是一个复杂的标准,你必须理解所有不同的“标准”

我不确定你的一般生活策略是什么,但当我不明白某件事时,我通常会做的是拿起一些关于这个主题的教科书,通读教科书,并写出例子。一本好的教科书不仅会告诉你事情是怎样的,你需要做什么,还会告诉你事情是怎样的,为什么你需要做你需要做的事情


我发现这是一本非常优秀的书,而这本新书在亚马逊上的评价甚至更高。

-1对于咆哮,这本书非常缺乏建设性。字符和书写系统是复杂的。试图在没有Unicode的情况下处理世界上所有的书写系统将更加令人头痛。甚至ASCII也有一些看不见的字符,这让很多程序员感到头疼,他们不懂。我认为Unicode之所以受到赞扬,是因为没有更好的标准。也许是这样,但是,除非你提出一个更好的标准来处理世界上所有的书写系统和它们的所有小问题,并提出一些比Unicode更好的东西:处理它吧。有时我觉得我应该创建一个更好的标准。:)我对你的问题进行了编辑,使之更具建设性——不过,在未来,尽管这项技术可能会让你不高兴,但请不要演变成咆哮;我们来这里是为了回答问题,而不是阅读长篇大论。我喜欢自然语言,因为它们很好,很独特。但它们不是被创造出来的。它们是进化而来的。这是一个很大的区别。Unicode的问题在于它是为了简单而创建的。但事实并非如此。几个问题:对不起,我最后一条评论的结尾丢失了。对不起,请再说一遍。:)Unicode有几个问题:我知道书写系统很复杂,但我们真的需要组合字符吗?好吧,也许我们很少需要拉丁字母+一个在任何自然语言中都不使用的尖锐组合。但我认为这种情况非常罕见,Unicode不应该支持这种情况。还有其他方法可以解决这个问题。用户和程序员的生活都会轻松得多。Unicode标准就是为他们创建的。标准应该让我们的生活更轻松,对吗?另一个问题:我想知道,如果我将表单的文本属性设置为包含不可见字符加上25个组合字符的字符串,那么表单上的编辑组件中会显示多少字符。我还想知道用户如何编辑此文本。如果他编辑可见文本,字符串中会出现什么?问题的数量是无限的……而且我认为没有任何程序能够完全支持Unicode。