1

这是一道面试题:

返回给定字符串值及其对应的 unicode 的 true 或 false

public boolean decode (String value, String unicode){
    // logic goes here
}

例如,如果给定的输入是

String value = "abc" String unicode = "UTF-8" return value is false    
String value"\u00A3" String unicode = "ASCII" return value is true

我在一篇文章中读到 unicode 值是由字节内部确定的。所以我的第一个逻辑是试图获取范围,例如,如果它属于 40 到 63 之间的范围,它的 ASCII。请更正此逻辑是否有误以及是否有更好的方法来找出 unicode。

4

2 回答 2

0

ANSCI 的 Unicode 等价物

ANSI 字符 32 到 127 对应于 7 位 ASCII 字符集中的字符,构成基本拉丁 Unicode 字符范围。字符 160–255 对应于 Latin-1 Supplement Unicode 字符范围中的字符。

如您所见,该表中有 ASCII 等价的 Unicode 值。所以你最好问问面试官真正的要求是什么。

于 2013-02-26T06:20:51.637 回答
0

这是一个相当糟糕的函数规范。在面试中,您需要假装客户已提出软件实施请求来回应。因此,您会温和地要求澄清规范背后的意图。或者你会在问题中引入批评,就好像你是学生并且你希望被教导一样。你可能会说:

  • 我不习惯使用“Unicode”这个词作为 ASCII 和 UTF-8 等编码的通用术语。我是否正确,这就是参数的用途?我们可以将它命名为“编码”,以便我更容易记住它的用途吗?
  • 所以,看起来我们关心的是某些编码,而不是互联网工程任务组曾经命名的所有编码,对吗?你看,我指的是 MIME 标准,它规定 IETF 为编码指定一个正式的名称注册。有数百或数千个。
  • 我注意到,当文本为“abc”时,我们将对有关 UTF-8 的查询返回 false。那是因为该文本中的代码点都在 UTF-8 与 ASCII 相同的范围内,因此编码的文本对于 UTF-8 编码与 ASCII 编码是相同的吗?对于包含 ASCII 作为子集的另一种编码,例如 ISO-8859-1,我们是否也这样做?
于 2013-02-26T04:58:56.030 回答