PostgreSQL
 sql >> डेटाबेस >  >> RDS >> PostgreSQL

साइडकीक ऐप में एन्कोडिंग त्रुटि पोस्ट करता है

सिर्फ इसलिए कि स्ट्रिंग यूटीएफ -8 होने का दावा करती है इसका मतलब यह नहीं है कि यह यूटीएफ -8 है। \xe9 é . है में ISO-8859-1 (AKA लैटिन-1) लेकिन यह UTF-8 में अमान्य है; इसी तरह, \xf1 है ñ ISO-8859-1 में लेकिन UTF-8 में अमान्य है। इससे पता चलता है कि स्ट्रिंग वास्तव में UTF-8 के बजाय ISO-8859-1 में एन्कोडेड है। आप इसे force_encoding वर्तमान एन्कोडिंग और encode इसे UTF-8 के रूप में फिर से एन्कोड करने के लिए:

> "Tweets en Ingl\xE9s y en Espa\xF1ol".force_encoding('iso-8859-1').encode('utf-8')
=> "Tweets en Inglés y en Español" 

तो उस स्ट्रिंग को उस डेटाबेस में भेजने से पहले जिसे आप चाहते हैं:

name = name.force_encoding('iso-8859-1').encode('utf-8')

दुर्भाग्य से, स्ट्रिंग के वास्तविक एन्कोडिंग का विश्वसनीय रूप से पता लगाने का कोई तरीका नहीं है। विभिन्न एन्कोडिंग ओवरलैप होते हैं और यह बताने का कोई तरीका नहीं है कि क्या è (\xe8 ISO-8859-1 में) या č (\xe8 आईएसओ-8859-2 में) मैनुअल विवेक जांच के बिना सही चरित्र है।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Postgres 9.x में CHECK बाधाओं की लागत क्या है?

  2. कॉपी कमांड:csv . से केवल विशिष्ट कॉलम कॉपी करें

  3. एकाधिक तालिकाओं से विदेशी कुंजी की गिनती प्राप्त करें

  4. कैसे पाप () PostgreSQL में काम करता है

  5. POSTGRESQL में CHARINDEX (SQL सर्वर) समतुल्य क्या है?