2016-11-15 57 views
0

我在尋找一個php函數或庫或建議,可以驗證破損的表格輸入值,當客戶複製&粘貼破損utf8字符串。驗證破碎的複製粘貼用戶輸入

場景:

  1. 客戶被要求在
  2. 輸入街道名稱他打開第三方破頁,他被存儲地址
  3. 副本破UTF8字符串(見例)
  4. 將此字符串粘貼到輸入字段並單擊提交

S o在服務器端,我收到「正確」的有效utf8值。

有沒有辦法捕捉到這一些如何讓我可以捕捉它並顯示錯誤信息?

測試的例子:

  • 「ATA€™的â€~em」
  • 「Bokowski」
+0

問題,要求我們建議還是找一本書,工具,軟件庫,教程或其他異地資源是題外話堆棧溢出,因爲他們往往以吸引自以爲是的答案,垃圾郵件。相反,請描述問題以及到目前爲止解決問題所做的工作。 – Lexi

+1

您可以使用preg_match來驗證輸入是否有效!你可以將它與字母和數字進行比較,例如:az AZ 0-9 :) – Soheyl

+0

如果他們實際上*粘貼單詞「At」的「em」,那麼他們實際上正在粘貼單詞「Atâ」 €™'em「(就像我現在在這裏做的那樣)。沒有什麼是「破碎」的,它只是不是你想要的角色(儘管我*在這個評論中希望他們在這裏)。所以......這有點問題,因爲沒有明顯的*正確*答案。當*是*什麼東西壞了,當*不是*它...? – deceze

回答

0

由於沒有通用的方法來確定值是否有誤,我最終匹配了正則表達式[A-Za-z0-9 \ - 。],並向用戶顯示警告消息(如果不匹配)。

(由@soheyl建議)

0

起初一個UTF-8字符串不能被打破。該字符串可以有非UTF-8字符,它看起來像是「破碎」,而它只是一種不同的編碼。

PHP有一個函數來檢查什麼樣的編碼用於給定的字符串:

string mb_detect_encoding (string $str [, mixed $encoding_list = mb_detect_order() [, bool $strict = false ]]) 

來源:http://php.net/manual/en/function.mb-detect-encoding.php

但它只檢查給定字符串是什麼類型的編碼,所以你只能檢查是否使用正確的編碼。

希望這會有所幫助。

+0

感謝您的回答,但在這種情況下,它始終是UTF-8,因爲它來自有效的utf8編碼網站。 – wormhit