我应该如何处理同一字符串中不同UNICODE数字集的数字?

时间:2009-05-21 14:02:31

标签: perl unicode

我正在编写一个function,它将UNICODE数字音译为ASCII数字,如果字符串包含来自不同UNICODE数字集的数字,我会感到有点难过。例如,如果我有字符串“\ x {2463} \ x {24F6}”(“④⓶”)。应该是我的功能

  1. 返回42?
  2. 呱呱叫这个字符串包含混合集?
  3. 鲤鱼,该字符串包含混合集并返回42?
  4. 为用户提供一个额外的参数来指定上述三种行为之一?
  5. 做点什么吗?

4 个答案:

答案 0 :(得分:1)

您当前的功能似乎是#1。

我建议您还应该编写另一个功能来执行#4,但当需求出现时,而不是

我确信Joel最近在一篇博客文章中写过“过早实施”,但我找不到它。

答案 1 :(得分:0)

我不确定我是否有问题。

您支持从一系列脚本进行数字转换,也就是说,您知道其数字字符的Unicode代码点。

如果在输入数据中发现未知代码点,则表示错误。

由您在发生错误时所做的事情取决于您;您可以插入空格或下划线,也可以中止转换。你要做的将取决于你的函数执行的环境;这不是我们可以告诉你的事情。

答案 2 :(得分:0)

我最初的想法是#4;严格基于我喜欢的选择。但是,当我查看你的功能时,我改变了主意。

该函数的目的似乎是简单地得到结果数字0..9。用户可能会发现发送混合集(一个功能:)很有用。我会用它。

答案 3 :(得分:0)

如果您必须处理大于10的基数输入,您可能最终必须将拉丁字母的前6个字母('ABCDEF')上的许多变体视为所有形式的数字。