sql >> Databáze >  >> RDS >> PostgreSQL

Nahraďte znaky víceznakovými řetězci

Kódování vašeho serveru se zdá být UTF8.
Mám podezření, že máte client_encoding neodpovídá, což by mohlo vyvolat mylný dojem o tom, s čím máte co do činění. Zkontrolujte pomocí:

SHOW client_encoding;   -- in your actual session

A přečtěte si tyto související odpovědi:
V Postgresu nelze vložit německé znaky
Nahradit znaky unicode v PostgreSQL

Zbytek řetězce nástrojů musí být také synchronizován. Například při použití puTTY se musíte ujistit, že terminál souhlasí se zbytkem:Change settings... Window -> Translation -> Remote character set =UTF-8 .

Pokud jde o vaši první otázku, už máte nejlepší řešení. Pár přehlásek je nejlepší nahradit řetězcem replace() prohlášení.

Jak se zdá, již také víte, náhrady jednotlivých znaků jsou efektivnější s (jediným) translate() prohlášení.

Související:



  1. Chyba hodnoty nebo číselné hodnoty ve funkci a nemohu zjistit, kde jsem udělal chybu Oracle

  2. Přidání cizího klíče do existující tabulky způsobí chybu 1050, že tabulka již existuje

  3. jak vytvořit dotaz MySql pro zobrazení průběžného zůstatku z kreditu a debetu, kde více zákazníků má jednotlivé zůstatky

  4. Jak funguje funkce to_number() v PostgreSQL