Ruby/Development/KCODE

Материал из Wiki.crossplatform.ru

(Различия между версиями)
Перейти к: навигация, поиск
м (1 версия: Импорт выборки материалов по Ruby)
 

Текущая версия на 17:55, 13 сентября 2010

Содержание

Check string size for non ascii code

#!/usr/bin/ruby -Ku -rjcode
string = "\xef\xbc\xa1" + "\xef\xbc\xa2" + "\xef\xbc\xa3" +
         "\xef\xbc\xa4" + "\xef\xbc\xa5" + "\xef\xbc\xa6"
string.size                                            # => 18
string.jsize                                           # => 6



Count non-ascii string

string = "\xef\xbc\xa1" + "\xef\xbc\xa2" + "\xef\xbc\xa3" +
         "\xef\xbc\xa4" + "\xef\xbc\xa5" + "\xef\xbc\xa6"
 
string.count "\xef\xbc\xa2"                            # => 13
string.jcount "\xef\xbc\xa2"                           # => 1



Handling International Encodings

$KCODE="u"
require "jcode"
$ ruby -Ku -rjcode



$KCODE Demo

#!/usr/bin/env ruby
p $KCODE
eacute = ""
eacute << 0303 << 0251
p eacute
$KCODE = "u"
p $KCODE
p eacute



$KCODE = "u"

$KCODE = "u"
french = "\xc3\xa7a va"
$KCODE = "u"
french.scan(/./) { |c| puts c }



Length of non-ascii string

"\xef\xbc\xa2".length                                  # => 3
"\xef\xbc\xa2".jlength                                 # => 1



Setting the $KCODE global variable to "u" and loading jcode gives regular expressions awareness of UTF-8 characters

$KCODE = "u"
require "jcode"
"".scan(/./) do |character|
  puts character
end



Using jcode you can make regular expressions UTF-8 aware

$KCODE = "u"
require "jcode"
class String
  def reverse
    scan(/./).reverse.join
  end
end
puts "asd".reverse