我想將curl中獲得的任何網站的輸出轉換爲utf8中的數據庫插入。在bash中將stdout轉換爲utf8
使用前:
html="$(curl -iL -compressed "$link")"
##code needed to convert nonUTF8 $html to utf8, preferably without writing to file
## escape characters for insert
html_q="${html//'\'/\\\\}"
html_q="${html_q//"'"/\'}"
## the insert statement
sqlHtml='INSERT INTO `'"${tableHtml}"'` (`html`) VALUES ('"'${html_q}'"');'
mysql -u$dbUser -p$dbPass -h$dbHost -P$dbPort -D$dbName --default_character_set utf8 -A <<ENDofMESSAGE
${sqlHtml}
ENDofMESSAGE
您如何期待確定'$ html'中數據的字符集是什麼?您不能將隨機垃圾轉換爲UTF-8,並期望結果合理,您需要知道您要轉換的字符集。 – cdhowie 2012-07-17 14:36:15
可能使用捲曲頭,像http://stackoverflow.com/questions/2510868/php-convert-curl-exec-output-to-utf8 – 2012-07-17 14:38:09
嗯,這是bash,而不是PHP。我不確定curl命令行客戶端能否讓您輕鬆訪問此標頭。你可能會考慮用Python寫這篇文章 - 請參閱[這個答案](http://stackoverflow.com/a/3683863/501250)瞭解可能的解決方案。 – cdhowie 2012-07-17 14:56:56