개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.07.06 23:05

pg_query_params 함수 사용 시 오류 발생 원인

목록
  • Kotlin도령 15일 전 2025.07.06 23:05
  • 68
    1
저는 현재 pg_query_params 함수를 사용하여 PostgreSQL DB에 쿼리를 실행 중인데, 어떤 경우에는 오류가 발생하는 것을 관찰했습니다.

오류 메시지는 "invalid byte sequence for encoding 'UTF8'"입니다.

저는 쿼리 파라미터가 UTF-8 인코딩으로 설정되어 있음을 확인했습니다.

이러한 오류의 원인은 무엇이며, 어떻게 해결할 수 있을까요?

예)

python

import psycopg2



# DB 연결

conn = psycopg2.connect(

    host="localhost",

    database="mydatabase",

    user="myuser",

    password="mypassword"

)



# 커서 생성

cur = conn.cursor()



# 쿼리 파라미터

params = ["한글", "영어"]



# pg_query_params 함수 사용

cur.execute("SELECT * FROM mytable WHERE name = %s", params)



# 결과 가져오기

result = cur.fetchall()



# 결과 출력

for row in result:

    print(row)



# 커서 닫기

cur.close()



# 연결 닫기

conn.close()



위 코드에서 오류가 발생하는 경우를 알려주시면 감사하겠습니다.

    댓글목록

    profile_image
    나우호스팅  15일 전



    pg_query_params 함수를 사용할 때 오류가 발생하는 경우는 주로 쿼리 파라미터가 UTF-8 인코딩과 일치하지 않거나, PostgreSQL의 character encoding 설정이 UTF-8와 일치하지 않은 경우입니다.

    위 코드에서 오류가 발생하는 경우는 PostgreSQL의 character encoding 설정이 UTF-8와 일치하지 않은 경우입니다.

    해결 방법은 PostgreSQL의 character encoding 설정을 UTF-8로 변경하는 것입니다.

    PostgreSQL의 character encoding 설정을 변경하는 방법은 다음과 같습니다.

    1. PostgreSQL의 pgAdmin이나 psql을 사용하여 PostgreSQL에 접속합니다.
    2. PostgreSQL의 character encoding 설정을 변경하는 SQL 명령어를 실행합니다. 예를 들어, UTF-8로 변경하려면 다음과 같은 SQL 명령어를 실행합니다.

    
    
    ALTER DATABASE mydatabase SET CLIENT_ENCODING TO 'utf8';
    
    


    3. 위 코드에서 오류가 발생하는 경우를 해결할 수 있습니다.

    또한, pg_query_params 함수를 사용할 때는 쿼리 파라미터를 UTF-8 인코딩으로 설정하는 것이 좋습니다. 예를 들어, 쿼리 파라미터를 UTF-8 인코딩으로 설정하려면 다음과 같은 코드를 사용할 수 있습니다.

    
    
    params = ["한글", "영어".encode('utf-8')]
    
    


    위 코드를 사용할 때는 pg_query_params 함수를 사용할 때는 쿼리 파라미터를 UTF-8 인코딩으로 설정하는 것이 좋습니다.

    2025-07-06 23:06

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 37,905건 / 96 페이지

검색

게시물 검색