Getting the encoding of a Postgres database

前端 未结 6 442
感情败类
感情败类 2021-01-30 09:57

I have a database, and I need to know the default encoding for the database. I want to get it from the command line.

相关标签:
6条回答
  • 2021-01-30 10:14

    If you want to get database encodings:

    psql  -U postgres -h somehost --list
    

    You'll see something like:

    List of databases
               Name         |  Owner   | Encoding
    ------------------------+----------+----------
    db1                     | postgres | UTF8
    
    0 讨论(0)
  • 2021-01-30 10:31

    From the command line:

    psql my_database -c 'SHOW SERVER_ENCODING'
    

    From within psql, an SQL IDE or an API:

    SHOW SERVER_ENCODING
    
    0 讨论(0)
  • 2021-01-30 10:33

    tl;dr

    SELECT character_set_name 
    FROM information_schema.character_sets 
    ;
    

    Standard way: information_schema

    From the SQL-standard schema information_schema present in every database/catalog, use the defined view named character_sets. This approach should be portable across all standard database systems.

    SELECT * 
    FROM information_schema.character_sets 
    ;
    

    Despite the name being plural, it shows only a single row, reporting on the current database/catalog.

    The third column is character_set_name:

    Name of the character set, currently implemented as showing the name of the database encoding

    0 讨论(0)
  • 2021-01-30 10:38

    Because there's more than one way to skin a cat:

    psql -l
    

    Shows all the database names, encoding, and more.

    0 讨论(0)
  • 2021-01-30 10:39

    Method 1:

    If you're already logged in to the db server, just copy and paste this.

    SHOW SERVER_ENCODING;
    

    Result:

      server_encoding 
    -----------------  
    UTF8
    

    For Client encoding :

     SHOW CLIENT_ENCODING;
    

    Method 2:

    Again if you are already logged in, use this to get the list based result

    \l 
    
    0 讨论(0)
  • 2021-01-30 10:41

    A programmatic solution:

    SELECT pg_encoding_to_char(encoding) FROM pg_database WHERE datname = 'yourdb';
    
    0 讨论(0)
提交回复
热议问题