1. 程式人生 > >iOS webView展示部分docx出現亂碼解決方案

iOS webView展示部分docx出現亂碼解決方案

專案中遇到預覽docx和pdf要求:

在開發過程中webView支援預覽pdf和docx,so直接使用webView,但在後期測試階段發現部分docx預覽時為亂碼現象,

查詢方案發現編碼utf-8以及GBK等都無法解決亂碼問題。

後發現如下方案能做修改:

content-type 用於定義使用者的瀏覽器或相關裝置如何顯示將要載入的資料,或者如何處理將要載入的資料,此屬性的值可以檢視 MIME 型別。

MIME (Multipurpose Internet Mail Extensions,多用途網際網路郵件擴充套件) 是描述訊息內容型別的因特網標準。MIME 訊息能包含文字、影象、音訊、視訊以及其他應用程式專用的資料。

content-type 一般以下面的形式出現:

Content-Type: [type]/[subtype]; parameter

type 有下面的形式:

  • Text:用於標準化地表示的文字資訊,文字訊息可以是多種字符集和或者多種格式的;
  • Multipart:用於連線訊息體的多個部分構成一個訊息,這些部分可以是不同型別的資料;
  • Application:用於傳輸應用程式資料或者二進位制資料;
  • Message:用於包裝一個E-mail訊息;
  • Image:用於傳輸靜態圖片資料;
  • Audio:用於傳輸音訊或者音聲資料;
  • Video:用於傳輸動態影像資料,可以是與音訊編輯在一起的視訊資料格式。

subtype

 用於指定 type 的詳細形式。“type/subtype”配對的集合和與此相關的引數。下面是最經常用到的一些 MIME 型別:

  • text/html(HTML 文件);
  • text/plain(純文字);
  • text/css(CSS 樣式表);
  • image/gif(GIF 影象);
  • image/jpeg(JPG 影象);
  • application/x-javascript(JavaScript 指令碼);
  • application/x-shockwave-flash(Flash);
  • application/x- www-form-urlencoded(使用 HTTP 的 POST 方法提交的表單);
  • multipart/form-data(同上,但主要用於表單提交時伴隨檔案上傳的場合)。

可能出現問題

(1) 在 IE6 IE7 IE8 中,若一個頁面被開啟時接收到的響應頭的 content-type 為 text/plain,瀏覽器會嘗試嗅探頁面檔案內實際內容來判斷是否可能為一個 HTML 文件,若是則會以 text/html 的方式將頁面作為 HTML 文件解釋,而不是將其作為純文字內容處理。

解決辦法:使用attachment

(2) jpg、tmp、png等格式圖片沒有辦法用 windows 圖片和傳真檢視器直接開啟

解決辦法:使用attachment

(3) docx、pptx等Office2007格式檔案可能會被瀏覽器錯誤識別為zip格式檔案下載或開啟

解決辦法:

"application/vnd.openxmlformats-officedocument.wordprocessingml.document" (for .docx files)
"application/vnd.openxmlformats-officedocument.wordprocessingml.template" (for .dotx files)
"application/vnd.openxmlformats-officedocument.presentationml.presentation" (for .pptx files)
"application/vnd.openxmlformats-officedocument.presentationml.slideshow" (for .ppsx files)
"application/vnd.openxmlformats-officedocument.presentationml.template" (for .potx files)
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" (for .xlsx files)
"application/vnd.openxmlformats-officedocument.spreadsheetml.template" (for .xltx files)

設定MIMEType 能解決word相容問題。

so 大吉大利。晚上吃雞