diff --git a/autoload/zencoding.vim b/autoload/zencoding.vim
index ade5ed2..6bb1b69 100644
--- a/autoload/zencoding.vim
+++ b/autoload/zencoding.vim
@@ -492,10 +492,7 @@ function! zencoding#anchorizeURL(flag)
endif
let mx = '.*
]*>\s*\zs\([^<]\+\)\ze\s*<\/title[^>]*>.*'
- let content = zencoding#util#getContentFromURL(url, 0)
- if len(matchstr(content, mx)) == 0
- let content = zencoding#util#getContentFromURL(url, 1)
- endif
+ let content = zencoding#util#getContentFromURL(url)
let content = substitute(content, '\r', '', 'g')
let content = substitute(content, '[ \n]\+', ' ', 'g')
let content = substitute(content, '', '', 'g')
diff --git a/autoload/zencoding/util.vim b/autoload/zencoding/util.vim
index 22b3d4c..519d20c 100644
--- a/autoload/zencoding/util.vim
+++ b/autoload/zencoding/util.vim
@@ -144,16 +144,12 @@ endfunction
"==============================================================================
" html utils
"==============================================================================
-function! zencoding#util#getContentFromURL(url, utf8)
- silent! new
- if a:utf8
- silent! exec '0r ++enc=utf8 !'.g:zencoding_curl_command.' "'.substitute(a:url, '#.*', '', '').'"'
- else
- silent! exec '0r!'.g:zencoding_curl_command.' "'.substitute(a:url, '#.*', '', '').'"'
- endif
- let ret = join(getline(1, '$'), "\n")
- silent! bw!
- return ret
+function! zencoding#util#getContentFromURL(url)
+ let res = system(printf("%s %s", g:zencoding_curl_command, shellescape(substitute(a:url, '#.*', '', ''))))
+ let s1 = len(split(res, '?'))
+ let utf8 = iconv(res, 'utf-8', &encoding)
+ let s2 = len(split(utf8, '?'))
+ return s2 > s1 * 2 ? utf8 : res
endfunction
function! zencoding#util#getTextFromHTML(buf)