class Mysql::Charset
@!attribute [r] number
@private
@!attribute [r] name
@return [String] charset name
@!attribute [r] csname
@return [String] collation name
Constants
- BINARY_CHARSET_NUMBER
-
@private
- CHARSETS
-
- [charset_number, charset_name, collation_name, default], …
-
@private
- CHARSET_DEFAULT
-
@private
- CHARSET_ENCODING
-
@private MySQL
Charset-> Ruby’s Encoding - COLLATION_TO_CHARSET
-
@private
- NUMBER_TO_CHARSET
-
@private
Attributes
Public Class Methods
Source
# File lib/mysql/charset.rb, line 359 def self.by_name(str) ret = COLLATION_TO_CHARSET[str] || CHARSET_DEFAULT[str] raise ClientError, "unknown charset: #{str}" unless ret ret end
@private @param [String] str @return [Mysql::Charset]
Source
# File lib/mysql/charset.rb, line 351 def self.by_number(n) raise ClientError, "unknown charset number: #{n}" unless NUMBER_TO_CHARSET.key? n NUMBER_TO_CHARSET[n] end
@private @param [Integer] n @return [Mysql::Charset]
Source
# File lib/mysql/charset.rb, line 424 def self.convert_encoding(raw, encoding) raw.force_encoding(encoding).encode end
@private convert raw to encoding and convert to Encoding.default_internal @param [String] raw @param [Encoding] encoding @return [String] result
Source
# File lib/mysql/charset.rb, line 18 def initialize(number, name, csname) @number, @name, @csname = number, name, csname end
@private @param [Integer] number @param [String] name @param [String] csname
Source
# File lib/mysql/charset.rb, line 415 def self.to_binary(value) value.force_encoding Encoding::ASCII_8BIT end
@private @param [String] value @return [String]
Public Instance Methods
Source
# File lib/mysql/charset.rb, line 441 def convert(value) if value.is_a? String and value.encoding != Encoding::ASCII_8BIT value = value.encode encoding end value end
@private convert encoding to corrensponding to MySQL charset @param [String] value @return [String]
Source
# File lib/mysql/charset.rb, line 431 def encoding enc = CHARSET_ENCODING[@name.downcase] raise Mysql::ClientError, "unsupported charset: #{@name}" unless enc enc end
@private retrun corresponding Ruby encoding @return [Encoding] encoding