作者tentenlee (天天)
看板PHP
標題[分享] 使用sqlsrv連線sql server時中文帶亂碼
時間Tue Oct 17 01:59:43 2017
開發環境 :
windows 10 64bit
php 7.0
apache 2.4.23
使用框架 CodeIgniter 3.1.6
sqlsrv版本 4.0
sql server 2012
其實以上重點大概只有一個
遇到問題:
在php的sql字串中,有用case去判斷某個欄位後顯示中文的文字,會發現回傳的資料中
上面case設定的文字的後面會多帶幾碼亂碼。
同樣的sql 印出來後直接丟到 sql server management studio中並不會有這問題。
一值google都沒注意到這問題,設定的編碼已經是UTF-8了。
所以問題到底在哪邊呀~~~
最後去看一下微軟的sqlsrv的github 發現版本已經有更新了,
重新下載後放到ext的資料夾做更新,重新啟動後就好了
就好了..
就好了...
我的人生呀~~~~~~~
目前github已經有5.1的版本,但是感覺還是測試版本。
目前官方的教學網站
https://goo.gl/FUoMMP 這個連結是4.3版本
所以將sqlsrv更新到4.3版本後就正常了....... 但這版本需要的是php 7.0以上
希望不要也有人踩到我這浪費生命的坑呀.....
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.132.180.49
※ 文章網址: https://www.ptt.cc/bbs/PHP/M.1508176785.A.7F2.html
推 gpmm: 推一個 10/17 07:59
推 pc031564: win32可以直接用odbc免DRV,尤其不會亂碼。 10/17 22:08
這亂碼發現的時機不確定,insert into 有中文的時候都沒有遇到過,用這版本很久
都沒發現這問題。
所以不確定觸發條件是甚麼就是了....
※ 編輯: tentenlee (220.132.180.49), 10/18/2017 01:36:20