簡體   English   中英

編碼/解碼/插入法語重音符號時出現問題

[英]Problems encoding/decoding/inserting French accented characters

我正在嘗試將以下字符串寫入數據庫:

打印時,揚聲器格柵會產生波紋。

“é”字符使我非常頭疼。 我不能使用htmlentities ,因為數據庫是桌面應用程序的一部分。 我的HTML是UTF-8。

在嘗試調試該問題的過程中(持續5天),我使用桌面應用程序向數據庫中插入了相同的字符串,除了有問題的字符顯示為“?”之外,該字符串似乎正常運行 -甚至使用htmlentitiesutf8_encode

這些是我在嘗試插入字符串時收到的錯誤消息:

警告 :PDOStatement :: execute()[pdostatement.execute]:消息:字符串“ speaker grille moir”之前的右引號引起來。 (嚴重性15)

警告 :PDOStatement :: execute()[pdostatement.execute]:常規SQL Server錯誤:檢查來自SQL Server的消息(嚴重性15)

警告 :PDOStatement :: execute()[pdostatement.execute]:消息:第1行:“揚聲器格柵波紋”附近的語法不正確。 (嚴重性15)

請幫忙!

更新 (2011-01-18)

顯然,數據庫字符編碼為SQL_Latin1_General_CP1_CI_AS 這是等效於ISO-8859-1的SQL Server嗎? ISO-8859-1 PHP不是默認的字符編碼嗎?

更新2 (2011-01-18)

很近! 在DSN字符串中包含charset=UTF-8允許我插入'é'字符,並且該字符正確顯示在桌面應用程序中。 它仍然顯示為“?” 即使在網頁中,即使我使用的是$text_block = htmlentities( $text_block, ENT_NOQUOTES, 'UTF-8' ); 在預格式化功能中。

確保使用PDO綁定正確傳遞動態字符串,以便正確地對它們進行轉義。

還要確保您的數據庫連接也位於UTF-8字符集中。

您在數據庫/字段中的集合也應該設置為UTF-8,但是,如果不這樣,則可能不會導致這種錯誤。

您是否嘗試在數據庫中使用帶有重音敏感排序規則的NVARCHAR數據類型? 在您的數據庫中進行以下測試,並告訴我們是否可行:

-揚聲器在打印時出現網紋雲紋效果。 如果object_id('tempdb.dbo。#test')不為空drop table #test create TABLE #test(test NVARCHAR(1000)collat​​e Latin1_General_CI_AS)

插入#test(test)中,選擇“打印時的揚聲器格柵波紋效果”。

從#test中選擇*

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM