2013-03-07 11 views
7

Quando si inseriscono caratteri danesi in server sql in un campo con un tipo di dati nvarchar, i caratteri danesi si deformano. Esempio: brændstof viene convertito in brandstof. Quando è direttamente dalla finestra di query del server SQL, funziona correttamente. Ho provato a dare diverse regole di confronto a quel campo (Latin1_Genaral, Danish_Greenlandic_100_CI_AI, Danish_Norwegian_CI_AI ecc.) C'è un modo per raggiungere questo obiettivo. Sto usando Microsoft Drivers 3.0 for PHP for SQL Server. Si prega di aiutareInserimento di caratteri danesi in sql server da PHP

+3

Questo suona come un normale problema utf8/unicode. Uso solo MySQL da solo, ma sono sicuro che è possibile specificare anche la * collation * (set di caratteri) di una riga in MySQL. [Ecco una guida su tutti i passaggi in MySQL/PHP da eseguire per assicurarsi che tutto sia il set di caratteri corretto - Sono sicuro che potresti usare alcune di queste informazioni per MSSQL] (http://tympanus.net/codrops/ 2009/08/31/solving-php-mysql-utf-8-issues /) – h2ooooooo

+0

nitpickery, ma "collation" non è lo stesso di un set di caratteri. – troelskn

+0

Si prega di chiarire questa frase vaga ma critica: 'Quando è direttamente dalla finestra di query di SQL Server funziona correttamente. – Tim

risposta

2

ho usato un lavoro in giro, solo HTML codificata la stringa danese prima di insering nella tabella, e quando la visualizzazione appena decodificato indietro

2

invece di un 'æ' letterale, utilizzare il suo equivalente CHAR e vedere cosa succede.

1

Proprio come indovinare qui:

Credo che il problema è nella parte PHP, non nella parte di MySQL (ho letto che hai usato qualche codifica per il campo specifico per il danese). O anche prima. Hai mai provato a inserire un 'ä' su una pagina HTML (il vero carattere, non ä)? Viene convertito in altri caratteri come nell'esempio nella tua domanda. Così vedo due possibilità:

  • input dell'utente è in modo non corretto con codifica URL
  • PHP usa un po 'di codifica che non supporta caratteri danesi.

O forse 3 & 4 (meno probabile):

  • Il carattere arriva in modo non corretto sul client (se inviare nuovamente alcuni caratteri al server non so se questo è il caso)
  • l'agente utente converte i caratteri e invia quindi caratteri malformati al server (o li visualizza sbagliato, il che significherebbe i caratteri giusti sono sul server, ma non si possono visualizzare con il browser)
2

Ora non so cosa dire delle lettere danesi, ma ho avuto problemi con l'armeno in SQL SERVER. Ho risolto questo problema in questo modo.

insert into sometable(field) values(N'myArmenianText'); 
Problemi correlati