2013-02-26 33 views
1

這是一個面試問題:獲得統一的類型的Java

返回TRUE或FALSE對於給定的字符串值,並將其對應的Unicode

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。

+1

「unicode」對您而言意味着什麼? – 2013-02-26 04:37:22

+0

@MikeSamuel我認爲他在談論編碼而不是unicode。 – Drogba 2013-02-26 04:38:08

+0

這個問題似乎圍繞字節<->字符編碼的許多不同的事情。你有沒有讀過[「絕對最低限度的每個軟件開發者,肯定必須知道Unicode和字符集」](http://www.joelonsoftware.com/articles/Unicode.html)? – 2013-02-26 04:58:03

回答

0

這是一個相當不好的函數規範。在採訪中,您需要假裝客戶已經提出了軟件實施請求。所以你會溫和地問清楚規範背後的意圖。或者你會在問題中引入批評,就好像你是學生,你希望被教導一樣。你可能會說:

  • 我不習慣使用單詞「Unicode」作爲ASCII和UTF-8等編碼的通用術語。我糾正這是什麼參數?我們能否將其命名爲「編碼」,以便我更容易記住它的目的?
  • 因此,看起來我們關心的是某些編碼,而不是說所有的互聯網工程任務組曾經提到的編碼,我說得對嗎?你看,我指的是MIME標準,它規定IETF爲編碼指定正式的名稱註冊表。有成百上千的人。
  • 我注意到,當文本是「abc」時,我們將返回false到一個關於UTF-8的查詢。那是因爲該文本中的代碼點全部位於UTF-8與ASCII相同的範圍內,因此UTF-8編碼的編碼文本與ASCII編碼相同?對於另一種編碼,如ISO-8859-1(其中包含ASCII作爲子集),我們是否也採用類似的方法?
0

Unicode Equivalent of ANSCI

ANSI字符32到127對應於在7位ASCII字符集,其形成基本拉丁字母Unicode字符範圍。字符160-255對應於Latin-1 Supplement Unicode字符範圍中的那些字符。

正如您所看到的那樣,該表中有ASCII等於Unicode的Unicode值。所以你最好問採訪者什麼是真正的要求。