Skip to content

Commit 567bceb

Browse files
committed
Addapt default encoding in SQL Server
1 parent 2e194cf commit 567bceb

File tree

2 files changed

+5
-2
lines changed

2 files changed

+5
-2
lines changed

app/models/data_source_table.rb

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,9 @@ def initialize(data_source, schema_name, table_name)
1616
def fetch_rows(limit=20)
1717
data_source.access_logging do
1818
adapter = connection.pool.connections.first
19-
column_names = columns.map {|column| adapter.quote_column_name(column.name) }.join(", ")
19+
decode_with = data_source.encoding or 'UTF-8'
20+
encode_to = Encoding.default_internal or 'UTF-8'
21+
column_names = columns.map {|column| adapter.quote_column_name(column.name.encode(encode_to, decode_with)) }.join(", ")
2022
if data_source[:adapter] == 'sqlserver'
2123
rows = connection.select_rows(<<-SQL, "#{table_name.classify} Load")
2224
SELECT TOP #{limit} #{column_names} FROM #{adapter.quote_table_name(full_table_name)};

app/models/table_memo_raw_dataset_column.rb

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,8 @@ def format_value(value)
99
when 'timestamp'
1010
'0x' + value.unpack('H*')[0]
1111
else
12-
value.to_s.encode(Encoding.default_internal, datasource_encoding).gsub(/\u0000/, '')
12+
dst_enc = Encoding.default_internal or 'UTF-8'
13+
value.to_s.encode(dst_enc, datasource_encoding).gsub(/\u0000/, '')
1314
end
1415
else
1516
case sql_type

0 commit comments

Comments
 (0)