2011-04-06 13 views

Odpowiedz

19

W Ruby 1.8.x, sprawdzanie ciągu # może być tym, czego szukasz, np.

>> multi_byte_str = "hello\330\271!" 
=> "hello\330\271!" 

>> multi_byte_str.inspect 
=> "\"hello\\330\\271!\"" 

>> puts multi_byte_str.inspect 
"hello\330\271!" 
=> nil 

W Ruby 1.9, jeśli chcesz znaków wielo-bajtowych, aby ich składowe bajtów uciekł, może chcesz powiedzieć coś w stylu:

>> multi_byte_str.bytes.to_a.map(&:chr).join.inspect 
=> "\"hello\\xD8\\xB9!\"" 

Zarówno Ruby 1.8 i 1.9, jeśli zamiast zainteresowany w (uciekł) punktów kodowych Unicode, można to zrobić (choć ucieka druku rzeczy też):

>> multi_byte_str.unpack('U*').map{ |i| "\\u" + i.to_s(16).rjust(4, '0') }.join 
=> "\\u0068\\u0065\\u006c\\u006c\\u006f\\u0639\\u0021" 
+0

To było super pomocne! Już miałem to napisać, a to zaoszczędziło mi czasu, eleganckiej kompozycji. Użyłem tego do zakodowania wskazówek dla małego tutoriala CSS, który napisałem na Codepen, więc nie są widoczne dla użytkownika dopóki nie zostaną sparsowane do JSON! Sprawdź to! http://cdpn.io/oznaH –

8

Jeśli Szyny kopanie wokół można użyć do tego kodera JSON:

require 'active_support' 
x = ActiveSupport::JSON.encode('µ') 
# x is now "\u00b5" 

Zwykły koder JSON nie-Railsowy nie "\ u" - nie koduje Unicode.

+0

naprawdę dobre rozwiązanie !!!!!! bardzo dziękuję! –

3

Możesz bezpośrednio używać znaków Unicode, dodając po prostu #Encoding: UTF-8 do górnej części pliku. Następnie możesz swobodnie używać ä, ǹ, ú i tak dalej w swoim kodzie źródłowym.

-1

Wypróbuj ten klejnot. Konwertuje unikody i nie ASCII znaki interpunkcyjne i symbole do najbliższego ASCII znaków i symboli

https://github.com/qwuen/punctuate

przykład użycia. "100%" przerwać => "100%"

gem używa odniesienie do konwersji w postaci https://lexsrv3.nlm.nih.gov/LexSysGroup/Projects/lvg/current/docs/designDoc/UDF/unicode/DefaultTables/symbolTable.html.

+0

To jest twoje własne repozytorium (lub takie, do którego jesteś głównym uczestnikiem). Którego nie ujawniłeś. Więc w zasadzie to spam. I nie odpowiada na pytanie. –

Powiązane problemy