내 Rails 앱에서 this SO post에 언급 된 솔루션을 기반으로 Postgres에서 직접 큰 CSV 파일을 스트리밍 할 수있었습니다. 내 작업 코드는과 같이 다소 같습니다 Postgresql의 copy_data 함수를 사용할 때 문자 인코딩을 올바르게 처리하는 방법은 무엇입니까?
query = <A Long SQL Query String>
response.headers["Cache-Control"] = "no-cache"
response.headers["Content-Type"] = "text/csv; charset=utf-8"
response.headers["Content-Disposition"] =
%(attachment; filename="#{csv_filename}")
response.headers["Last-Modified"] = Time.now.ctime.to_s
conn = ActiveRecord::Base.connection.raw_connection
conn.copy_data("COPY (#{query}) TO STDOUT WITH (FORMAT CSV, HEADER TRUE, FORCE_QUOTE *, ESCAPE E'\\\\');") do
while row = conn.get_copy_data
response.stream.write row
end
end
response.stream.close
end
열 (VARCHAR
)의 일부
大大 æ-가 æ- 나는 내가
copy_data
기능을 사용하고 방식을 변경하기로, 또는
입니다 있습니까 ‡ ‡이 이 문제를 해결하기 위해 CSV 파일에 할 수있는 것이 있습니까? 파일을 UTF-8 .txt
파일로 저장하려고 시도했을뿐만 아니라 copy_data
설명서에 언급 된 convert_to
함수를 시도했지만 아무 소용이 없습니다.
@ Hervé Piedvache 도와 주셔서 감사합니다. 주어진 문제를 해결하는 해답을 추가했습니다. –