2011-04-06 36 views

Trả lời

19

Trong Ruby 1.8.x, Kiểm tra chuỗi # có thể là những gì bạn đang tìm kiếm, ví dụ:

>> 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 

Trong Ruby 1.9 nếu bạn muốn đa byte có byte thành phần của họ trốn thoát, bạn có thể muốn nói điều gì đó như:

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

Trong cả hai Ruby 1,8 và 1,9 nếu bạn là thay vì quan tâm trong (thoát) điểm mã unicode, bạn có thể làm điều này (mặc dù nó thoát thứ in quá):

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

Điều này cực kỳ hữu ích! Tôi chuẩn bị viết nó, và nó giúp tôi tiết kiệm thời gian, thành phần tao nhã. Tôi đã sử dụng điều này để mã hóa một số gợi ý cho một hướng dẫn CSS nhỏ mà tôi đã thực hiện trên Codepen, vì vậy chúng không hiển thị cho người dùng cho đến khi được phân tích thành JSON! kiểm tra nó ra! http://cdpn.io/oznaH –

8

Nếu bạn đã Rails đá xung quanh bạn có thể sử dụng bộ mã hóa JSON cho việc này:

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

Bộ mã hóa JSON không phải Rails thông thường không "\ u" -xác minh Unicode.

+0

giải pháp thực sự tốt !!!!!! cảm ơn nhiều! –

3

Bạn có thể trực tiếp sử dụng các ký tự unicode nếu bạn chỉ cần thêm #Encoding: UTF-8 vào đầu tệp của mình. Sau đó, bạn có thể tự do sử dụng ä, ǹ, ú và như vậy trong mã nguồn của bạn.

-1

thử đá quý này. Nó chuyển đổi Unicode hoặc không ASCII dấu chấm câu và các ký hiệu để chấm câu ASCII gần và biểu tượng

https://github.com/qwuen/punctuate

ví dụ sử dụng:. "100%" chấm câu => "100%"

viên ngọc sử dụng tham chiếu trong https://lexsrv3.nlm.nih.gov/LexSysGroup/Projects/lvg/current/docs/designDoc/UDF/unicode/DefaultTables/symbolTable.html để chuyển đổi.

+0

Đây là repo của riêng bạn (hoặc bạn là người đóng góp chính). Mà bạn không tiết lộ. Vì vậy, về cơ bản đó là spam. Và nó không trả lời câu hỏi. –

Các vấn đề liên quan