[color=red]更新[/color]2011/11/15
有些不是ie上的了
如果不確定目標是什麼編碼,ruby1.9開始可以用string類內建的encoding來得到編碼。
puts iconv.iconv("utf-8", doc.to_s.encoding.to_s, doc)
使用//ignore忽略無法轉換的字元
iconv.iconv("utf-8//ignore", "gbk//ignore", doc)
參考,[url=老宋rubyer[/url]中文ruby力量,必須支援
在檔案頭指定程式編碼
在***.rb頭上新增,注意:一定要在第一行,中間新增無效
#coding: utf-8
這個是用來處理**編碼的,就是**中的中文
---------------華麗麗的歷史小分割------------------------
簡單彙總,都是je上的,就是弄到一起
第一種情況,open的**引數有中文
url="語言藝術=1001"
nokogiri::html(open(url))
就會報錯,因為瀏覽器打包給伺服器傳送引數的時候是經過編碼的,所以我們也要給漢字經過一次編碼,只需在這兩句中間加上一句就可以了
url=uri.escape(url)
這樣 rul 字串就被編碼成 這樣:sql%e8%af%ad%e8%a8%80%e8%89%ba%e6%9c%af就沒問題了
[url=來自這裡[/url]
第二種情況, 自己**是utf-8,open的**是gb2312有中文
doc = nokogiri::html.parse(open(""), nil, "gb2312")
@links = doc.css("a")
[url=出自虎炮回答[/url]
第三種是需要 iconv轉換
目標網頁是gb2312編碼,有些頁面能採回來,有些又提示有 無效的字元編碼
ruby**
doc = nokogiri::html(open(url))
改為
doc = iconv.iconv("utf-8","gb2312",nokogiri::html(open(url)))
url = ""
doc = nokogiri::html(open(url))
doc.css("h3").each do |c|
puts iconv.iconv("gbk//ignore", "utf-8//ignore", c.content)
end
[url=參考論壇[/url]
require 'nokogiri'
require 'open-uri'
doc = nokogiri::html(open(''))
doc.css('h3.r a.l').each do |link|
puts link.content
end
doc = nokogiri::html(open(''))
doc.css('h3.r a.l').each do |link|
puts link.content
end
換種方式實現:
doc.xpath('//h3/a[@class="l"]').each do |link|
puts link.content
end
doc.xpath('//h3/a[@class="l"]').each do |link|
puts link.content
end
我們還可以這樣來寫:
doc.search('h3.r a.l', '//h3/a[@class="l"]').each do |link|
puts link.content
end
doc.search('h3.r a.l', '//h3/a[@class="l"]').each do |link|
puts link.content
end
編碼問題需要另行轉換。
結果如下所示:
[quote]aaron patterson (tenderlove) on twitter
tender love******
force m.d. - tender love lyrics
force mds - tender love
jordan knight - tender love
alicia keys- tender love(live)
tenderlove's nokogiri at master - github
tender love and care on flickr - photo sharing!
usher - tender love lyrics
love quotes - tender love quotes[/quote]
Qt中文亂碼的幾種情況
測試環境 qt5.9.6 使用vs2017的編譯器。一 亂碼現象 1.源 中的中文顯示亂碼 2.編譯時出現 常量中有換行符 的警告。3.執行時軟體介面中文顯示亂碼 二 解釋 1.qtcreator編輯器預設採用utf 8編碼讀取檔案。vs預設採用本地編碼 我們使用的windows一般為gb2312 ...
Qt中文亂碼的幾種情況
測試環境 qt5.9.6 使用vs2017的編譯器。一 亂碼現象 1.源 中的中文顯示亂碼 2.編譯時出現 常量中有換行符 的警告。3.執行時軟體介面中文顯示亂碼 二 解釋 1.qtcreator編輯器預設採用utf 8編碼讀取檔案。vs預設採用本地編碼 我們使用的windows一般為gb2312 ...
Tomcat解決中文亂碼的幾種方式
一 對tomcat home conf server.xml檔案進行配置 本機的完整目錄為d users administrator tomcat apache tomcat 7.0.54 conf server.xml 核心 如下 其中最後一句是自己加的 這種方式一般不建議使用,因為它修改的是to...