日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網(wǎng)為廣大站長(zhǎng)提供免費(fèi)收錄網(wǎng)站服務(wù),提交前請(qǐng)做好本站友鏈:【 網(wǎng)站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(wù)(50元/站),

點(diǎn)擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會(huì)員:747

本文介紹了UTF-8字符有問題;我看到的不是我存儲(chǔ)的內(nèi)容的處理方法,對(duì)大家解決問題具有一定的參考價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧!

問題描述

我嘗試使用UTF-8,但遇到了問題。

我嘗試了很多方法,以下是我得到的結(jié)果:

????而不是亞洲字符。即使是歐洲文本,我也得到了Se?or
奇怪的胡言亂語(Mojibake?)例如Se?±or?–°?μa?–°é—?
黑色鉆石,如Se?或.
最后,我遇到了數(shù)據(jù)丟失或至少被截?cái)嗟那闆r:SeforSe?or。
即使我將文本放在外觀正確時(shí),它也無法正確地排序。

我做錯(cuò)了什么?我如何修復(fù)代碼?我是否可以恢復(fù)數(shù)據(jù),如果可以,如何恢復(fù)?

推薦答案

此問題困擾著此網(wǎng)站的參與者以及其他許多人。

您已經(jīng)列出了CHARACTER SET故障的五個(gè)主要案例。

最佳實(shí)踐

接下來,最好使用CHARACTER SET utf8mb4COLLATION utf8mb4_unicode_520_ci。(有較新版本的Unicode排序規(guī)則正在進(jìn)行中。)

utf8mb4utf8的超集,因?yàn)樗幚淼氖?字節(jié)的UTF8代碼,這是Emoji和一些中文用戶需要的。

在MySQL之外,”UTF-8″是指所有大小的編碼,因此實(shí)際上與MySQL的utf8mb4相同,而不是utf8

在下面的內(nèi)容中,我將嘗試使用這些拼寫和大寫來區(qū)分MySQL內(nèi)部和外部。

應(yīng)做的內(nèi)容概述

將您的編輯器等設(shè)置為UTF-8。
HTML表單的開頭應(yīng)類似<form accept-charset="UTF-8">。
將您的字節(jié)編碼為UTF-8。
將UTF-8設(shè)置為客戶端中使用的編碼。
聲明列/表CHARACTER SET utf8mb4(與SHOW CREATE TABLE核對(duì)。)
<meta charset=UTF-8>在HTML開頭
存儲(chǔ)的例程獲取當(dāng)前的字符集/排序規(guī)則。它們可能需要重建。

UTF-8 all the way through

More details for computer languages(及其后續(xù)章節(jié))

測(cè)試數(shù)據(jù)

不能使用工具或SELECT查看數(shù)據(jù)。
太多這樣的客戶端,尤其是瀏覽器,試圖補(bǔ)償不正確的編碼,并向您顯示正確的文本,即使數(shù)據(jù)庫已損壞。
因此,選擇一個(gè)包含一些非英文文本的表和列,并執(zhí)行

SELECT col, HEX(col) FROM tbl WHERE ...

正確存儲(chǔ)的UTF-8的十六進(jìn)制將為

表示空格(任何語言):20
英文:4x、5x6x7x
對(duì)于大多數(shù)西歐國(guó)家,重音字母應(yīng)為Cxyy
西里爾語、希伯來語和波斯語/阿拉伯語:Dxyy
亞洲大部分地區(qū):Exyyzz
表情符號(hào)和一些中文:F0yyzzww
More details

所見問題的具體原因和修復(fù)

截?cái)?/strong>文本(Se用于Se?or):

要存儲(chǔ)的字節(jié)未編碼為utf8mb4。解決此問題。
還要檢查閱讀過程中的連接是否為UTF-8。

黑色鉆石,帶問號(hào)(Se?or表示Se?or);
存在以下情況之一:

情況1(原始字節(jié)不是UTF-8):

要存儲(chǔ)的字節(jié)未編碼為UTF8。解決此問題。
INSERTSELECT的連接(或SET NAMES)不是utf8/utf8mb4。解決此問題。
另外,檢查數(shù)據(jù)庫中的列是否為CHARACTER SET utf8(或utf8mb4)。

案例2(原始字節(jié)UTF-8):

SELECT的連接(或SET NAMES)不是utf8/utf8mb4。解決此問題。
另外,檢查數(shù)據(jù)庫中的列是否為CHARACTER SET utf8(或utf8mb4)。

僅當(dāng)瀏覽器設(shè)置為<meta charset=UTF-8>時(shí)才會(huì)出現(xiàn)黑色菱形。

問號(hào)(普通問號(hào),不是黑色方塊)(Se?or表示Se?or):

要存儲(chǔ)的字節(jié)未編碼為utf8/utf8mb4。解決此問題。
數(shù)據(jù)庫中的列不是CHARACTER SET utf8(或utf8mb4)。解決這個(gè)問題。(使用SHOW CREATE TABLE。)
還要檢查閱讀過程中的連接是否為UTF-8。

Mojibake(Se?±orforSe?or):
(此討論也適用于雙重編碼,但不一定可見。)

要存儲(chǔ)的字節(jié)需要進(jìn)行UTF-8編碼。解決此問題。
INSERTingSELECTing文本時(shí)的連接需要指定utf8或utf8mb4。解決此問題。
該列需要聲明為CHARACTER SET utf8(或utf8mb4)。解決此問題。
HTML應(yīng)以<meta charset=UTF-8>開頭。

如果數(shù)據(jù)看起來正確,但排序不正確,則
要么你選擇了錯(cuò)誤的校對(duì),
或者沒有符合您需要的排序規(guī)則,
或者您有雙重編碼。

重復(fù)編碼可以通過執(zhí)行上述SELECT .. HEX ..進(jìn)行確認(rèn)。

é should come back C3A9, but instead shows C383C2A9
The Emoji 

分享到:
標(biāo)簽:character-encoding errorTroublewithUTF-8characters;whatIseeisnotwhatI
用戶無頭像

網(wǎng)友整理

注冊(cè)時(shí)間:

網(wǎng)站:5 個(gè)   小程序:0 個(gè)  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會(huì)員

趕快注冊(cè)賬號(hào),推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨(dú)大挑戰(zhàn)2018-06-03

數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學(xué)四六

運(yùn)動(dòng)步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動(dòng)步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績(jī)?cè)u(píng)定2018-06-03

通用課目體育訓(xùn)練成績(jī)?cè)u(píng)定