UIWebView加载本地网页乱码

转载 2016年08月30日 15:37:30

webview打开网页很容易,只有三个方法:

- (void)loadRequest:(NSURLRequest *)request;
- (void)loadHTMLString:(NSString *)string baseURL:(NSURL *)baseURL;
- (void)loadData:(NSData *)data MIMEType:(NSString *)MIMEType textEncodingName:(NSString *)textEncodingName baseURL:(NSURL *)baseURL;


数第一个最容易,只需要一个nsurl地址。什么都不需要你设置。一般万维网的网页都正常,但是我在打开自己的部分网络上的网页还是有乱码。这里没有其它设置,乱码问题除非把网页改成utf-8,不然就需要用到另外两个方法来加载。(设置方法:

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

</head>


我尝试的第三中方法成功的,

首先把数据写到nsdata中

NSData *data = [NSData dataWithContentsOfFile:m_strUrl];


然后设置baseUrl  

        NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
        NSString *documentsDir = [paths objectAtIndex:0] ;   //根据自己的具体情况设置,我的html文件在document目录,链接也是在这个目录上开始
        NSURL *baseUrl = [NSURL fileURLWithPath:documentsDir];


为什么需要设置baseUrl?

也就是data中有一些链接是图片,css都是外部文件,然后这些文件需要到一个目录上去找。baseUrl就是这个目录。


最后,使用loadData方法对文件进行加载,并且指定类型(mimetype)和编码类型(textEncodingName)

[self.m_myWebView loadData:data MIMEType:@"text/html" textEncodingName:@"GBK" baseURL:baseUrl];



效果如下图,


本地的gbk文件带图片都能够很好的读取出来。


本文转自:http://blog.csdn.net/yaoliang11/article/details/6701080

相关文章推荐

UIWebView 打开txt文档中文不乱码方法

UIWebView 打开txt文档中文不乱码方法             NSData *txtData = [NSData dataWithContentsOfFile:fileURL]; ...
  • reylen
  • reylen
  • 2013年12月16日 13:54
  • 2512

iOS webview 加载html 乱码 需要UTF8转码

之前是: [self.webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@“https://XXX...

彻底解决WebView加载html乱码问题

1.webView.loadData乱码参看"webView.loadData中文乱码问题“ 2.webview.loadUrl("http://www.xxx.com")和WebView.load...

总结关于iPhone中UIWEBVIEW读取本地GBK编码格式html

关于webView读取本地GBK编码的html,尝试了两天,终于成功。 欢喜之余,把感想记下来。一般来说,不成都是人犯错,人犯错的原因一个是大意,一个是不知道。 初学者两者都有。不废话,开...

iOS 关于webview 加载路径乱码

今天工作时候,要到个小问题。后台给了我一个url,我需要用webview展示出来。问题展现我就直接上图了。 第一张:我把url在浏览器中打开一下(到时候显示手机也是这种效果就对了) 结果我在webv...

UIWebView获得网页内容(HTML源码)、加载本地HTML文件

获取网页内容在使用UIWebView加载一个网页的时候,有时候需要获得此页面的源码,可以使用UIWebView执行JS代码来获得://加载网址 let req = NSMutableURLReques...

UIWebView加载自签名Https网页

ATS设置 按照惯例写一个UIWebView,用来加载网页: _webView = [[UIWebView alloc] initWithFrame:CGRectMake(0, 0, self.vie...

Swift - 网页控件(UIWebView)加载本地数据,文件

使用UIWebView加载本地数据或资源有如下三种方式: 1,使用 loadHTMLString 方法加载HTML内容 2,使用 loadRequest 方法加载本地资源(也可用于加载服务器资源)...

ios UIWebView 加载网页、文件、 html

UIWebView  是用来加载加载网页数据的一个框。UIWebView可以用来加载pdf word doc 等等文件 生成webview 有两种方法,1、通过storyboard 拖拽 2、通...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:UIWebView加载本地网页乱码
举报原因:
原因补充:

(最多只允许输入30个字)