File tree Expand file tree Collapse file tree 1 file changed +5
-4
lines changed Expand file tree Collapse file tree 1 file changed +5
-4
lines changed Original file line number Diff line number Diff line change 3
3
module Mysql2
4
4
class Error < StandardError
5
5
REPLACEMENT_CHAR = '?'
6
+ ENCODE_OPTS = { :undef => :replace , :invalid => :replace }
6
7
7
8
attr_accessor :error_number , :sql_state
8
9
attr_writer :server_version
@@ -19,7 +20,7 @@ def initialize(msg, server_version=nil)
19
20
20
21
if "" . respond_to? :encode
21
22
def sql_state = ( state )
22
- @sql_state = state . encode
23
+ @sql_state = state . encode ( ENCODE_OPTS )
23
24
end
24
25
end
25
26
@@ -56,10 +57,10 @@ def clean_message(message)
56
57
return message if !message . respond_to? ( :encoding )
57
58
58
59
if @server_version && @server_version > 50500
59
- message . encode
60
+ message . encode ( ENCODE_OPTS )
60
61
else
61
62
if message . respond_to? :scrub
62
- message . scrub . encode
63
+ message . scrub . encode ( ENCODE_OPTS )
63
64
else
64
65
# This is ugly as hell but Ruby 1.9 doesn't provide a way to clean a string
65
66
# and retain it's valid UTF-8 characters, that I know of.
@@ -72,7 +73,7 @@ def clean_message(message)
72
73
new_message << REPLACEMENT_CHAR
73
74
end
74
75
end
75
- new_message . encode
76
+ new_message . encode ( ENCODE_OPTS )
76
77
end
77
78
end
78
79
end
You can’t perform that action at this time.
0 commit comments