我有一個使用google API翻譯的紅寶石,我正在將它翻譯成Elixir。Elixir:字符串強制編碼UTF-8
比如,我從API得到一些這樣的: api-data
而在紅寶石今天我這樣做:
encoded = rawdata.force_encoding("UTF-8")
我想知道是否有一種方法來「force_encode」 (就像Ruby一樣),但是用Elixir?
Update解決方案
我達成解決方案基於您的回答傢伙非常感謝!
由於藥劑處理它作爲二進制文件然後就是招:我得到的響應正文:body |> IO.iodata_to_binary ...
defmodule Request do
alias Extract
use HTTPotion.Base
def process_url(url) do
"https://translate.google.com/translate_a/" <> url
end
def process_response_body(body) do
body |> IO.iodata_to_binary |> Extract.extract
end
end
默認情況下,Elixir字符串(更適合稱爲二進制文件)是UTF-8。或者我誤解了你的問題? –
你說得對。我在文檔中看到了這一點。問題是我在這個URL(我發佈)中收到一個文件,這個文件有一些奇怪的編碼,所以當我解析文本時,我會得到像「Olá」這樣的東西。我已經通過'force_encoding'解決了紅寶石問題。任何想法? –
嗯。我不知道你從哪裏得到這個文件,但根據UChardet(在我的Linux機器上),編碼是TIS-620。 https://en.wikipedia.org/wiki/Thai_Industrial_Standard_620-2533我會尋找某種實用程序將其轉換爲UTF-8。 –