有没有人有任何代码用于按字母顺序排列Unicode中的阿拉伯语和日语文本? 如果代码在ruby中会很棒。
根据Oniguruma文档 , \d字符类型匹配: 十进制数字char Unicode:General_Category – Decimal_Number 但是,在包含所有Decimal_Number字符的字符串中扫描\d导致只匹配拉丁0-9位数: #encoding: utf-8 require ‘open-uri’ html = open(“http://www.fileformat.info/info/unicode/category/Nd/list.htm”).read digits = html.scan(/U\+([\da-f]{4})/i).flatten.map{ |s| s.to_i(16) }.pack(‘U*’) puts digits.encoding, digits #=> UTF-8 #=> 0123456789٠١٢٣٤٥٦٧٨٩۰۱۲۳۴۵۶۷۸۹߀߁߂߃߄߅߆߇߈߉०१२३४५६७८९০১২৩৪৫৬৭৮৯੦੧੨… p RUBY_DESCRIPTION, digits.scan(/\d/) #=> “ruby 1.9.2p180 (2011-02-18) [i386-mingw32]” #=> [“0”, “1”, “2”, “3”, “4”, “5”, “6”, “7”, “8”, “9”] 我误读了文档吗? 为什么不匹配其他Unicode数字,和/或有没有办法让它这样做?
不幸的是,Unicode 0.1( sudo gem install unicode )在Ruby 1.9上不起作用。 我有以下代码段: require “rubygems” require “unicode” str = “áéíóúç” Unicode.normalize_KD(str).gsub(/[^\x00-\x7F]/n, “”) #=> aeiouc 我使用它将标题转换为永久链接,而不删除重音字符。 有没有办法使用pack或unpack方法转换这些文本?
我有一些情况,当编码为utf-8 json时,来自html textarea或输入的用户输入数据有时会以\u00a0 (非中断空格)而不是空格发送。 我认为这是Firefox中的一个错误,因为我知道用户不是故意放入不间断的空格而不是空格。 Ruby中还有两个错误,其中一个可以用来对抗另一个。 无论出于什么原因, \s都不匹配\u00a0 。 但是[^[:print:]] ,绝对不应该匹配)和\xC2\xA0都匹配,但我认为那些是不太理想的方法来处理这个问题。 是否有其他建议可以解决这个问题?
是否可以在Rails中将Unicode字符串设置为路径段? 我尝试以下方法: # app/controllers/magazines_controller.rb class MagazinesController < ApplicationController def index end end # encoding: utf-8 # config/routes.rb PublishingHouse::Application.routes.draw do resources :magazines, :only => :index, :path => :журналы # a Unicode string is set as a segment of the path end # encoding: utf-8 # config/routes.rb PublishingHouse::Application.routes.draw do resources :magazines, :only => :index, :path => :журналы […]
我需要使用反斜杠将Unicode字符串编码/转换为其转义forms。 谁知道怎么样?
我有两个错误,都围绕编码和两者相关。 我在启动WEBrick时遇到的第一个错误(技术上是警告): /Users/USERNAME/example/config/initializers/bb-ruby.rb:54: warning: invalid Unicode Property \P: /\:\-?\P/ 它指的是: /\:\-?\P/, 这只是一些正则表达式,最终是这个块的一部分: @@tags[‘Razzing’] = [ /\:\-?\P/, ”, ‘Razzing’, ‘:P’, :razzing] 然后,我在解析一些字符串时也会得到以下错误(可能是由于同一行)… Encoding::CompatibilityError incompatible encoding regexp match (ASCII-8BIT regexp with UTF-8 string) 我正在运行Ruby 1.9.2和Rails 3.2.1。
如何判断一个角色是否是使用ruby的汉字?
我知道关于这个错误有很多类似的问题,我已经尝试了很多没有运气的问题。 我遇到的问题涉及字节\xA1并且正在抛出 ArgumentError:UTF-8中的无效字节序列 我试过以下但没有成功: “\xA1”.encode(‘UTF-8’, :undef => :replace, :invalid => :replace, :replace => “”).sub(”, ”) “\xA1”.encode(‘UTF-8’, :undef => :replace, :invalid => :replace, :replace => “”).force_encoding(‘UTF-8’).sub(”, ”) “\xA1”.encode(‘UTF-8’, :undef => :replace, :invalid => :replace, :replace => “”).encode(‘UTF-8’).sub(”, ”) 每一行都为我抛出错误。 我究竟做错了什么? 更新: 上述行仅在IRB中失败。 但是,我修改了我的应用程序,使用相同的String#encode方法和参数对CVS文件的行进行编码,从文件中读取行时出现相同的错误(注意:如果对同一个字符串执行操作,它会起作用没有使用IO)。 bad_line = “col1\tcol2\tbad\xa1″ bad_line.sub(”, ”) # does NOT fail puts bad_line # => […]
给定Ruby 1.8.7中的字符串(没有使用\ p {}支持Unicode属性的令人敬畏的Oniguruma正则表达式引擎),我希望能够确定该字符串是否包含一个或多个中文,日文或韩文字符; 即 class String def contains_cjk? … end end >> ‘日本語’.contains_cjk? => true >> ‘광고 프로그램’.contains_cjk? => true >> ‘艾弗森将退出篮坛’.contains_cjk? => true >> ‘Watashi ha bakana gaijin desu.’.contains_cjk? => false 我怀疑这将归结为查看字符串中的任何字符是否在Unihan CJKV Unicode块中 ,但我认为值得询问是否有人知道Ruby中的现有解决方案。