2008-10-22 126 views
0

我有一個導入包含某些字符串的二進制文件的過程。這些字符串可以包含擴展的ASCII,例如CHR(224),'à'。該過程正在執行RAW並將BCD字節逐個轉換爲字符串中的字符。將擴展ASCII導入Oracle

問題是擴展的ASCII字符正在丟失。我懷疑這是由於它們的值在UTF8中的含義。

我想我需要的是一個函數,它需要一個ASCII字符索引並返回相應的UTF8字符。

更新:如果我碰巧知道傳入文本的等效Oracle字符集,那麼我可以將原始字節轉換爲UTF8嗎?源文本將始終是單個字節。

+0

有趣的讀取Unicode:http://www.joelonsoftware.com/articles/Unicode .html – DCookie 2008-10-22 15:46:36

回答

1

沒有「擴展ASCII」這樣的東西。或者,更準確地說,如此多的編碼是ASCII的超集,共享相同的前127個編碼點,這個術語太模糊而無意義。你需要找出這個文件中的字符串是否使用UTF-8,ISO-8859-whatever,MacRoman等編碼。

你問題的第二部分的答案是一樣的。 UTF-8在設計上是ASCII的超集。任何ASCII字符(即0到127)也是一個UTF-8字符。要將一些非ASCII字符(即> = 128)轉換爲UTF-8,首先需要找出它的編碼。

+0

所以,如果我知道編碼,那麼我該如何轉換它? – steevc 2008-10-22 16:19:42