我建立與Apache科爾多瓦的支持團隊,爲我公司的一切應用程序,我使用UTF8測試數據庫中工作時是好的。PHP的問題人物
後來,當我實現真正的DB我注意到它與雙贏,1252的編碼。
問題是,即使數據庫是win-1252我們有很多行使用特殊的字符,如「ç」和「〜」和「'」和「`」,當我運行php所有行在我的數據庫中的表中不會顯示,因爲這一點。
請記住,我不能將數據庫轉換爲utf8。
PS:我看到的解決方案是去的每一行並刪除caracters,但不是一個好的解決方案(約20000行)
............... .........
PHP文件:
header("Access-Control-Allow-Origin: *");
$dbconn = pg_connect("host=localhost dbname=bdgestclientes2
user=postgres password=postgres")
or die('Could not connect: ' . pg_last_error());
$data=array();
$q=pg_query($dbconn,"SELECT * FROM clientes WHERE idcliente = 3");
$行= pg_fetch_object($ q)){$數據[] = $行};
echo json_encode($ data);
你必須要保存它不支持字符的數據庫。這是你應該解決的問題。是的,有解決方法,不,真正的問題是數據庫不支持您需要它支持的字符。 – deceze
如果你絕對不能更改字符集,你可以做的是在保存時將字符串轉換爲base64,並在加載時將它們轉換回UTF-8 – apokryfos
事情是數據庫用win1252編碼,我有20000行,像2000行,有任何種類的特殊字符。 $ data = array(); $ q = pg_query($ dbconn,「SELECT * from clients where idclient = 3」); ($ row = pg_fetch_object($ q)){ $ data [] = $ row; } echo json_encode($ data); 在此查詢,我與客戶交流3,並在他的名字測試 他有一個「C」,所以如果我運行PHP我不會得到任何結果,但是當我在DB改變「C」爲「C」它顯示所有的行數據。 事情是有任何轉換方法,而我運行查詢? –