2016-10-18 118 views
0

我有一個Oracle表中包含這個特殊的Unicode 字符(正方形帶白色問號)的一些數據。這裏有各種表示如何替換PL/SQL中的一個特殊的Unicode字符

Unicode字符十月十二月十六進制HTML 結果1 - 1個 替換字符的1

OCT = 0177775 
DEC = 65533 
HEX = 0xFFFD  
HTML = &#65533 

我想知道我怎麼可以說替換該符號「^」,而我選擇數據?我知道有一個REPLACE()函數,但我沒有成功使用它。有人可以幫忙嗎?

謝謝

+0

什麼是數據庫字符集?另外,對包含該字符的字符串使用'DUMP()'函數,並找出它具有的代碼值。 (例如:'select dump('abc')'from dual returns'97,98,99' - 'c'的代碼是99. – mathguy

+0

['0xFFFD'](http://www.fileformat.info/) info/unicode/char/0fffd/index.htm)只是Unicode替代字符,用於表示未知或不可表示的內容。是數據庫中存儲的實際值,還是僅僅是瀏覽器在顯示時顯示的內容? –

回答

0

首先將字符串轉換爲ASCII然後替換。

SELECT CONVERT('Ä Ê Í Õ Ø A B C D E ', 'UTF8', 'US7ASCII') 

請看以下關於不同類型字符轉換的文檔。 https://docs.oracle.com/cd/B28359_01/server.111/b28286/functions027.htm

然後使用REPLACE。

+0

謝謝。這個工作很完美! – sydney

+0

只有當OP詢問的特定字符存在於'US7ASCII'中時,這纔會起作用。如果沒有,它將不會正確轉換,然後替換可能不起作用。 – mathguy