Skip to content

Instantly share code, notes, and snippets.

@metaskills
Created May 14, 2009 15:17
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save metaskills/111709 to your computer and use it in GitHub Desktop.
Save metaskills/111709 to your computer and use it in GitHub Desktop.
# Ruby: 1.8.7 (2008-08-11 patchlevel 72) [i686-darwin9]
>> @unicode_data = "\344\270\200\344\272\21434\344\272\224\345\205\255"
=> "一二34五六"
>> d = SqlServerUnicode.create!(:nvarchar => @unicode_data)
=> #<SqlServerUnicode id: 5, nchar: nil, nvarchar: "一二34五六", ntext: nil, ntext_10: nil, nchar_10: nil, nvarchar_100: nil>
>> d.reload.nvarchar
=> "一二34五六"
>> exit
# Ruby: 1.9.1p0 (2009-01-30 revision 21907) [i386-darwin9]
>> @unicode_data = "\344\270\200\344\272\21434\344\272\224\345\205\255"
=> "\xE4\xB8\x80\xE4\xBA\x8C34\xE4\xBA\x94\xE5\x85\xAD"
>> @unicode_data.encoding.name
=> "ASCII-8BIT"
>> data = SqlServerUnicode.create!(:nvarchar => @unicode_data)
=> #<SqlServerUnicode id: 6, nchar: nil, nvarchar: "\xE4\xB8\x80\xE4\xBA\x8C34\xE4\xBA\x94\xE5\x85\xAD", ntext: nil, ntext_10: nil, nchar_10: nil, nvarchar_100: nil>
>> data.reload.nvarchar
=> "\xE4\xB8\x80\xE4\xBA\x8C34\xE4\xBA\x94\xE5\x85\xAD"
>> puts data.reload.nvarchar
一二34五六
=> nil
>> data.reload.nvarchar.encoding.name
=> "ASCII-8BIT"
>>
# Ruby: 1.9.1p0 (2009-01-30 revision 21907) [i386-darwin9]
# Using a forced encoding on string literal
>> @unicode_data = "\344\270\200\344\272\21434\344\272\224\345\205\255".force_encoding('UTF-8')
=> "一二34五六"
>> @unicode_data
=> "一二34五六"
>> data = SqlServerUnicode.create!(:nvarchar => @unicode_data)
=> #<SqlServerUnicode id: 7, nchar: nil, nvarchar: "一二34五六", ntext: nil, ntext_10: nil, nchar_10: nil, nvarchar_100: nil>
>> data.reload.nvarchar
=> "\xE4\xB8\x80\xE4\xBA\x8C34\xE4\xBA\x94\xE5\x85\xAD"
>> puts data.reload.nvarchar
一二34五六
=> nil
>> puts data.reload.nvarchar.encoding
ASCII-8BIT
=> nil
>> data.reload
=> #<SqlServerUnicode id: 7, nchar: nil, nvarchar: "\xE4\xB8\x80\xE4\xBA\x8C34\xE4\xBA\x94\xE5\x85\xAD", ntext: nil, ntext_10: nil, nchar_10: nil, nvarchar_100: nil>
>> @unicode_data == data.reload.nvarchar
=> false
>> @unicode_data == data.reload.nvarchar
=> false
>> fd = data.nvarchar.force_encoding('UTF-8')
=> "一二34五六"
>> @unicode_data == fd
=> true
>> fd.encoding.name
=> "UTF-8"
>> fd.valid_encoding?
=> true
>>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment