Created
October 28, 2013 08:46
-
-
Save senny/7193374 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
diff --git a/activerecord/lib/active_record/connection_adapters/mysql_adapter.rb b/activerecord/lib/active_record/connection_adapters/mysql_adapter.rb | |
index 41a4718..88c9494 100755 | |
--- a/activerecord/lib/active_record/connection_adapters/mysql_adapter.rb | |
+++ b/activerecord/lib/active_record/connection_adapters/mysql_adapter.rb | |
@@ -559,7 +559,7 @@ module ActiveRecord | |
def set_field_encoding field_name | |
field_name.force_encoding(client_encoding) | |
if internal_enc = Encoding.default_internal | |
- field_name = field_name.encoding(internal_enc) | |
+ field_name = field_name.encode!(internal_enc) | |
end | |
field_name | |
end | |
diff --git a/activerecord/test/cases/base_test.rb b/activerecord/test/cases/base_test.rb | |
index 874813a..20cf251 100755 | |
--- a/activerecord/test/cases/base_test.rb | |
+++ b/activerecord/test/cases/base_test.rb | |
@@ -607,10 +607,22 @@ class BasicsTest < ActiveRecord::TestCase | |
end | |
def test_unicode_column_name | |
+ Weird.reset_column_information | |
weird = Weird.create(:なまえ => 'たこ焼き仮面') | |
assert_equal 'たこ焼き仮面', weird.なまえ | |
end | |
+ def test_respect_internal_encoding | |
+ Weird.reset_column_information | |
+ | |
+ old_default_internal = Encoding.default_internal | |
+ Encoding.default_internal = "EUC-JP" | |
+ | |
+ assert_equal ["EUC-JP"], Weird.columns.map {|c| c.name.encoding.name }.uniq | |
+ ensure | |
+ Encoding.default_internal = old_default_internal | |
+ end | |
+ | |
def test_non_valid_identifier_column_name | |
weird = Weird.create('a$b' => 'value') | |
weird.reload |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment