2012-08-31 65 views
1

這真的有點奇怪,可能是我沒有正確的完成,但由於某些原因,當我在MySQL中插入或更新(使用PHP類創建)時,對於插入文本的原因(在這種情況下,電子郵件的HTML副本)只有一半插入...當它看到' - '時,它一直打破MySQL插入列插入一半

我不認爲這是一個標準的連字符,因爲它看起來不斷在瀏覽器欄中略有不同,甚至在這個文本區域中,我的連字符「 - 」比「 - 」更窄。我已經嘗試過HTML實體,但不會轉換,所以在處理這個令人討厭的角色時有一些建議?

雖然我應該說,如果我使用PHP My Admin直接插入HTML主體(完全相同的格式,所有內容都會插入,我甚至嘗試使用str_replace刪除它,但我沒有運氣。有更多的單詞,但有效的話(但它仍然切斷之前,該字符顯示.....

+2

任何代碼?你有什麼嘗試? – jcho360

+0

在數據庫中定義的列是否足夠寬以容納所有插入的文本? –

+0

是的,它被定義爲'LONGTEXT',這是很長的 - 但正如我上面所說,如果它將數據粘貼到PHP我的管理員,一切都保存 – MrJ

回答

1

您正在使用「dash」不要與連字符混淆。看看不同之處: - -

有許多種破折號:

figure dash (‒) U+2012    
en dash  (–) U+2013 
em dash  (—) U+2014 
horizontal bar (―) U+2015 
swung dash  (⁓) U+2053 

在執行查詢之前,您可以嘗試使用每種類型的str_replace("–", "-", $query);,看看是否可以解決您的問題,但是您真的應該考慮執行utf8_encode(),然後將數據庫字段設置爲使用UTF8。

+0

這聽起來像最有可能的原因(這是Outlook的破折號,而不是連字符?) - 我會看看我能做些什麼 – MrJ

+0

Outlook會自動將一個雙連字符( - )轉換爲一個em短劃線,這就是它看起來像你所得到的。 http://answers.microsoft.com/en-us/office/forum/office_2010-onenote/autocorrect-and-the-em-dash/6b4b0e83-2bb1-4d1b-9346-384596fd48d7 –

+0

謝謝 - 它似乎工作!有沒有其他字符可以像這樣破壞插入? – MrJ