<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>#정리결벽증_개발킴의 블로그</title>
        <link>https://velog.io/</link>
        <description></description>
        <lastBuildDate>Wed, 09 Jun 2021 01:12:38 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <image>
            <title>#정리결벽증_개발킴의 블로그</title>
            <url>https://images.velog.io/images/jonah_official/profile/b1db4fa7-bdf8-452e-9aa3-009263ae4772/X-T30.jpg</url>
            <link>https://velog.io/</link>
        </image>
        <copyright>Copyright (C) 2019. #정리결벽증_개발킴의 블로그. All rights reserved.</copyright>
        <atom:link href="https://v2.velog.io/rss/jonah_official" rel="self" type="application/rss+xml"/>
        <item>
            <title><![CDATA[[PostgreSQL] client_encoding 설정]]></title>
            <link>https://velog.io/@jonah_official/PostgreSQL-clientencoding-%EC%84%A4%EC%A0%95</link>
            <guid>https://velog.io/@jonah_official/PostgreSQL-clientencoding-%EC%84%A4%EC%A0%95</guid>
            <pubDate>Wed, 09 Jun 2021 01:12:38 GMT</pubDate>
            <description><![CDATA[<blockquote>
<p>대량의 테스트 데이터 INSERT를 위해 .sql 파일을 만들어 사용한다. 이때 sql 파일 내에 한글 데이터로 인해 <strong>인코딩 에러</strong>가 난다면, <strong>PostgreSQL의 client-encoding 설정이 필요</strong>하다.</p>
</blockquote>
<hr>
<h3 id="📍-1-psql을-통한-sql-파일-실행">📍 1. psql을 통한 sql 파일 실행</h3>
<p>PostgreSQL에서 sql 파일을 실행할 때, 주로 psql 을 사용한다. 사용법은 아래와 같다.</p>
<p><strong>&gt; psql -U {USER_NAME} -d {DATABASE} -f {SQL_FILE_PATH}</strong></p>
<p>이를 이용하면 sql 파일 내에 대량의 INSERT 쿼리를 작성해놓고, 한번에 테스트 DB를 세팅할 수 있어서 편하다. </p>
<h3 id="📍-2-sql-파일-실행시-encoding-에러">📍 2. sql 파일 실행시 encoding 에러</h3>
<p>간혹 한글 데이터 등이 포함된 sql 파일 실행시, 아래 에러가 발생한다.</p>
<blockquote>
</blockquote>
<p>&gt; psql:INSERT.sql:2: 오류:  0xec 0xa0 바이트로 조합된 문자(인코딩: &quot;UHC&quot;)와 대응되는 문자 코드가 &quot;UTF8&quot; 인코딩에는 없습니다
&gt; psql:INSERT.sql:26030: 오류:  0xb0 0x20 바이트로 조합된 문자(인코딩: &quot;UHC&quot;)와 대응되는 문자 코드가 &quot;UTF8&quot; 인코딩에는 없습니다</p>
<p>이때는 당황하지말고 client_encoding을 확인해보자.</p>
<h3 id="📍-3-client_encoding-확인">📍 3. client_encoding 확인</h3>
<p>일단 psql 커맨드를 통해 DB에 접속 후, client_encoding을 확인한다.</p>
<p><strong>&gt; psql -U {USER_NAME}
&gt; psql -U postgres
postgres=# show client_encoding;</strong></p>
<p><img src="https://images.velog.io/images/jonah_official/post/685e8e6e-564c-4dd8-92d1-c8a69c1d4e06/image.png" alt=""></p>
<p>이제 client_encoding을 알맞게 바꿔주면 된다(EUC_KR / UTF8 등). </p>
<h3 id="📍-4-환경-변수-설정을-통한-client_encoding-변경">📍 4. 환경 변수 설정을 통한 client_encoding 변경</h3>
<p>구글링 해보면 다양한 client_encoding 변경 방법이 있지만, Windows의 경우 그냥 환경변수에 설정하는게 제일 편하고 확실하다. </p>
<p>** 변수 이름 : PGCLIENTENCODING
변수 값 : UTF8**</p>
<p><img src="https://images.velog.io/images/jonah_official/post/a6a95404-378a-42dd-96a5-5cd83664e150/image.png" alt=""></p>
<p>이제 PostgreSQL을 재기동한 후, 다시 client_encoding을 확인해보면 변경된 것을 확인할 수 있다. sql 파일을 실행시켜 보면 정상적으로 INSERT가 가능하다.</p>
<p><img src="https://images.velog.io/images/jonah_official/post/0421cf3a-89e9-4206-9fed-376cb55e5f28/image.png" alt=""></p>
]]></description>
        </item>
    </channel>
</rss>