Como codificação de caracteres mudança de uma conexão DOP / SQLite em PHP?

StackOverflow https://stackoverflow.com/questions/263056

  •  06-07-2019
  •  | 
  •  

Pergunta

Estou tendo um pequeno problema com um aplicativo PHP-GTK que mantém em execução em strings não-UTF8, eu tinha encontrado que o problema está na conexão de banco de dados, mesmo quando o banco de dados é suposto estar em UTF-8.

Eu tinha tentado com o "SET CHARACTER SET utf8" (MySQL caminho) e do "SET NAMES UTF8" e nada acontecer (não há nenhuma informação sobre nenhum destes comandos no " consulta linguagem compreendida por SQLite " página ou, então, eu não estou surpreso com isso).

PD: Talvez a conexão já está em UTF-8 e os dados não é, mas se há uma maneira de mudar a conexão codificação esta questão ainda seria útil

.
Foi útil?

Solução

Tanto quanto eu posso dizer, SQLite só tem uma definição para charset, que está a um nível base de dados por. Você não pode alterar a codificação na conexão.

A API C tem duas maneiras diferentes de abrir uma conexão, quer como UTF 8 ou UTF-16. Eu esperaria módulo do PHP SQLite (e, portanto DOP) simplesmente usar a versão UTF-8. Se isso é correto, eu esperaria que uma conexão SQLite é sempre UTF-8. Isso significa que você deve manualmente codificar / decodificar cordas com utf8_encode / utf8_decode .

Veja também: http://www.alberton.info/dbms_charset_settings_explained.html

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top