2011-11-10 40 views
0

如何在Ruby中使用iconv將字符串從簡體中文轉換爲繁體中文(反之亦然)?使用iconv將繁體中文轉換爲簡體中文

我已經試過

Iconv.conv("gb2312//IGNORE", "big5//IGNORE", '大家一起學中文') 

我得到一個完全不同的字符串。我嘗試過使用GBK和BIG5編碼,我得到一個IllegalSequence錯誤。

謝謝。

+1

你使用哪個ruby版本? Ruby 1.9包含編碼處理。你可以使用String#encode('Big5')'轉換爲Big5。我無法測試它 - 當我運行一個testprogramm :(我的電腦中似乎缺少中文字體) – knut

+0

我試過了,它不工作不幸 – alste

回答

0

你想轉換學說嗎?我可能是錯的,但我不認爲Iconv會執行這種類型的轉換。

+0

是的,這就是我想要的如果iconv無法做到這一點,你知道我怎麼可以用Ruby做到這一點嗎? – alste

+0

在進一步的研究,它看起來像Iconv可以做到這一點。嗯... –

+1

任何想法如何?我試圖'@Text = 「大家一起學中文」 @c = Iconv.conv( 'GB2312', 'UTF-8',@Text) @c = Iconv.conv( '中文' ,'gb2312',@c) @c = Iconv.conv('utf-8','big5',@c)',不起作用(給我一個不同的字符串) – alste

4

https://rubygems.org/gems/tradsim

我只是寫了寶石

要安裝寶石

gem install tradsim 

要使用寶石

# encoding: UTF-8 
require 'tradsim' 
puts Tradsim::to_sim("大家一起學中文") 

它會產生

大家一起學中文 

並且您可以使用Tradsim::to_trad來做相反的操作。

+0

你的寶石在我的測試中是不準確的 – c2h2

+0

你能舉個例子,讓我知道是因爲編程錯誤還是翻譯表的不完美?翻譯表是不完善的。例如,對於後面的字符,我實際上並不知道它是否是繁體中文(如皇后)或簡體中文(如後來)。我希望有人能提出一個好方法來處理那些中文同樣但漢語不同的人物。 – erinata

+0

它與紅寶石1.8工作? – ohho

相關問題