nsstring
* path=[[
nsbundle
mainbundle
]pathforresource
:@"48_1"
oftype
:@".txt"];
nsurl
* url=[
nsurl
fileurlwithpath
:path]; if
(url)
[_webview
loadrequest
:[nsurlrequest
requestwithurl
:url]];
很不幸,對於中文,uiwebview支援得並不是很好:
48_1.txt 檔案中包含了中文,我們不知道它是什麼編碼,可能是 utf8,也可能是 gbk 或 gb18030 。我們可以通過stringwithcontentsoffile 方法推斷它的編碼:
nsstringencoding
* usedencoding =
nil;
intencoding; //
帶bom
頭的如utf-8
等這裡會識別
nsstring
*body = [
nsstring
stringwithcontentsoffile
:path
usedencoding
:usedencoding
error
:nil];
if(!body) if
(!body)
然後將它們裝換為 utf16 編碼並儲存到新的檔案中:
if(body)
else
注意,pathfortemporaryfile 函式是我們自定義的。它實際上將檔案指向了「沙盒」的 temp 資料夾。
這樣,uiwebview 就能正確顯示中文了:
但不知道為什麼,uiwebview 在顯示文字檔案時,會將檔案末尾的若干位元組顯示為方塊。這些方塊實際上是一些「\0」字元。當我用「文字編輯器」或textmate 等程式開啟 48_1.txt 檔案時,這些「\0」字元都不會顯示在螢幕上。但在 uiwebview 中,它們卻被顯示為方塊。因此可以在儲存檔案前加上以下**:
nsstring
* findstr=
@"\0";
nsrange
range=[body
rangeofstring
:findstr]; if
(range.
location
!=nsnotfound)
這樣,你就可以把那些方塊除掉。
Linux 系統中文檔案顯示亂碼
linux中文顯示亂碼 1 檢視系統是否安裝中文語言包 說明已經安裝了 2 xshell 的編碼設定成utf 8 3 修改配置檔案 etc sysconfig i18n lang zh cn.utf 8 language zh cn.utf 8 zh cn supported zh cn.utf 8...
用the excerpt處理中文文章字數限制的方法
wordpress技巧 2011年12月27日 era 6,509 views 2 replies wordpress處理the excerpt的 你可以在wp includes目錄下的formatting.php中找到,通過 你可發現the excerpt是用空格來計算長度的,這對英文是可以的,但...
CentOS 下中文檔名顯示亂碼
在windows上使用ftp上傳檔案到linux上,中文名稱在linux系統中顯示為亂碼。雖然將linux的env設定了lang en us.utf 8,並且本地的shell客戶端編碼也設定成utf 8,但在shell中 或通過http訪問 仍是亂碼 原因在於,windows 的檔名中文編碼預設為g...