中文乱码,之所以出现这种现象,根本原因是解析和编码所按照的字符集不 同,而字符集是什么呢?

```

字符集(Character set)是多个字符的集合,字符集种类较多,每个字符集包含的字符个数不同,常见字符集名称:ASCII字符集、GB2312字符集、BIG5字符集、 GB18030字符集、Unicode字符集等。计算机要准确的处理各种字符集文字,需要进行字符编码,以便计算机能够识别和存储各种文字。```

注: GB系列中 GBK ==> GB2312 ==>GB18030 (2000年推出,现今最新的中文字符集,Windows系统下创建txt文件默认是该编码,当然也是造成标题问题的源头)'

涉及到字符问题,一般都会牵扯到文件解析等,接下来关于文件的介绍,稍作介绍:

文件是指.exe,可执行文件(外部命令);.com,可执行文件(内部命令);.cab,是安装盘上的数据打包文件;.dll,动态链接库文件等。

计算机文件(或称文件、电脑档案、档案),是存储在某种长期储存设备上的一段数据流。所谓“长期储存设备”一般指磁盘、光盘、磁带等。其特点是所存信息可以长期、多次使用,不会因为断电而消失。

关于文件的类型与内容

一种重要的文件是文本文件,是由一些字符的串行组成的。二进制文件一般是指除了文本文件以外的文件。

关于文件的储存方式

虽然一个文件表现为一个单一的流,但它经常在磁盘不同的位置存储为多个数据碎片(甚至是多个磁盘)。操作系统会将它们组织成文件系统,每个文件放在特定的文件夹或目录中。

文件是由软件创建的,而且符合特定的文件格式。'

```

不同的文件在序列化成二进制的时候会有不同的文件头,但有些文件没有特定的文件头,比如txt,也有些文件头是重复的,比如4D5A90 EXE 、4D5A90 dll 、4D5A90 OCX 、4D5A90 OLB 、4D5A90 IMM 、4D5A90 IME

```

言归正传,文件编译成二级制文件后,按照http协议传输,设置好头信息后,指定编码,在这里又要引出一个问题, 在文件传输前为什么要设置请求头信息呢?  为什么要指定ContentType呢?

```

1.不可不知的MIME类型   :    MIME(Multipurpose Internet Mail Extension)类型是一种表示文档的性质和格式的标准化方法。在浏览器中使用MIME类型来告诉服务器确定如何处理文档数据和显示文档,而不是通过文件扩展名。

2.MIME的格式  :  type/subtype

3.MIME嗅探   :   顾名思义,在浏览器(主要为IE)认为文件的MIME类型错误或者没有设置时自动设置正确的MIME类型。你可能会想这样不是挺好的吗? 能避免开发者或者是用户设置了错误的MIME类型,那么这种方式是否成为主流呢?

很遗憾,它有优点,然而弊大于利。

A -- 它违背了HTTP规范(大概为开发者能够通过设置不同的MIME类型来处理文件)。也因此,这种嗅探也使得用户无法对浏览器处理文件的方式有所选择

B --  对于具有危险性的可执行文件,一般浏览器将其看为未知类型的二进制文件,因此最多让用户选择下载与否,然而对于具有嗅探的IE浏览器来说,它会设置其为它认为较为正确的MIME类型,这将会导致绕过下载选项而直接使该文件直接在用户电脑运行,这是一个安全问题。这有一篇关于MIME sniffing“助纣为虐”的探讨。

因此,最为合理的是让用户自己设置MIME类型

3 . ContentType  : contentType是实体头,用于指定交互数据(资源)的媒体类型。对于请求头部或者响应头部都能够出现。

contentType:[][,charset][,boundary]

mediaType: 文件MIME类型(非必须是正确的MIME类型

charset:编码标准

boundary:区分每对key/value 的分割线,实质为随机的字符串

能让浏览器正确处理上传的数据通过一定的该设置的MIME类型的规定

```

接下来为何还是乱码呢?  都指定了数据类型,那么接下来了解下IOS的UTI吧

```

IOS为了整合文件传输是对文件指定的类型规范不统一退出的UTI模式, 被认为是下一代MIME

格式为public.xxx(文件后缀名)          详细资料太乱  对ios不了解  有大神欢迎指正

```

最终处理方式:     服务器端解析文件,将内容原封不动内嵌浏览器的方式传入移动端,ios和安卓正常接收但这显然不是最佳方式.

java ios乱码_相同的后台java代码,txt文件解析,安卓解析正常,IOS却是乱码,PC解析也正常.......相关推荐

  1. python写入文件中文乱码_记一次python写入txt文件正常,但是写入csv文件中文乱码问题...

    今天在将已经爬取完存成txt文件批量导入保存csv格式时,文本中的汉字能够正常正常显示,但是用正常的方法保存到csv中就成了乱码. 最开始的写法:with open(city+'.csv','a+') ...

  2. java 网上医院预约系统_基于java web的医院网上预约挂号系统 代码+数据库文件 齐全...

    [实例简介] 基于java web的医院网上预约挂号系统 代码+数据库文件 齐全 :直接导入myeclipse就ok了,好使.献给做这个项目的同学 [实例截图] [核心代码] guahao └── g ...

  3. java写出文本文档乱码_对象流如何写出到文件以及为什么乱码

    在写入对象文件的过程中,采用了txt文件,发现文件乱码,引发了思考. 首先需要理解好IO流是如何处理文件的. 1.ObjectOutputStream 对Java对象进行序列化处理,处理后的数据,不是 ...

  4. java 中文乱码_好程序员Java学习路线分享如何处理中文参数

    好程序员Java学习路线分享如何处理中文参数,为什么表单中会产生中文乱码. 好程序员Java培训 产生乱码,就是因为服务器和客户端沟通的编码不一致造成的,因此解决的办法是:在客户端和服务器之间设置一个 ...

  5. java python算法_用Python,Java和C ++示例解释的排序算法

    java python算法 什么是排序算法? (What is a Sorting Algorithm?) Sorting algorithms are a set of instructions t ...

  6. java 判断类型_如何快速入门Java编程学习(干货)

    一.初识Java 1.生活中的程序: 从起床到教室上课的过程 穿衣打扮>起床>洗漱>出宿舍>>吃早餐>到教室 按照特定的顺序去完成某一件事的过程我们叫做生活中的程序 ...

  7. 计算机java语言答案_【计算机二级Java语言】卷019

    选择题 公共知识 [1]下列叙述中正确的是 [A]算法的时间复杂度与计算机的运行速度有关 [B]算法的时间复杂度与运行算法时特定的输入有关 [C]算法的时间复杂度与算法程序中的语句条数成正比 [D]算 ...

  8. 支持java虚拟主机_为何缺乏支持Java的虚拟主机

    现在很多站长们,都青睐于香港虚拟主机建站.现在常见的是asp和PHP的程序空间很多,但是Java的少之又少,下面小编我给大家聊一聊! 一.香港Java虚拟主机成本高 使用Java程序建站,就必须要用支 ...

  9. java线程堆栈_深入JVM剖析Java的线程堆栈

    在这篇文章里我将教会你如何分析JVM的线程堆栈以及如何从堆栈信息中找出问题的根因.在我看来线程堆栈分析技术是Java EE产品支持工程师所必须掌握的一门技术.在线程堆栈中存储的信息,通常远超出你的想象 ...

最新文章

  1. WISEGATE:SIEM的最佳实践讨论
  2. PyTorch 实现经典模型8:FCN
  3. python控制手机自动刷新闻_python +adb控制手机自动化签到
  4. 这款免费小工具,让你的Mac也能实现右键新建
  5. canvas笔记-canvas基本用法
  6. java smack_java – 如何在Android smack中正确接受好友请求?
  7. 期盼数月的召唤|PaddlePaddle中文文档利剑来袭
  8. [转载] python隐式转换_Python | 数据类型的转换 显式转换 隐式转换
  9. Python 基础---列表
  10. L2-009. 抢红包
  11. 超好用的数学公式识别软件mathpix!
  12. java毕业设计TELL情感社交系统Mybatis+系统+数据库+调试部署
  13. 【外挂逆向】《某涯明月刀》BUFF及技能预判
  14. 程序 = 数据结构 + 算法?真的是这样的吗?
  15. 警务通、停车场收费终端集成手机拍照车牌识别SDK,通过手机就可实现快速便捷的出入口系统管理...
  16. 智能硬件类产品测试项目总结
  17. 决策理论(decision theory)
  18. 总结论文中正负样本的选择
  19. while语句和for嵌套c语言,关于循环的嵌套,说法错误的是() 答案:三种循环(while循环、do-while循环和for循 环)不可以互相嵌套。...
  20. android 执行病毒,警惕安卓手机病毒Android/Fakeapp.ox

热门文章

  1. 单SoC芯片方案,或将加速行泊一体方案规模化量产应用
  2. 有64辆赛车进行不计时比赛,一共有8个赛道,想要找出最快的四辆车,要至少比赛多少轮?给出你的方案。
  3. shell脚本 重启python脚本
  4. 有关BPSK、QPSK调制信号的通信链路仿真,以及误码分析
  5. 全球信息安全状态报告:筑好大数据时代防火墙
  6. 第一章软件开发环境与工具的相关概念
  7. Fuzzing101系列 Exercise 1 - Xpdf
  8. java openni rgb显示_Kinect+OpenNI学习笔记之4(OpenNI获取的图像结合OpenCV显示)
  9. 100行Python代码,快速搭建一个电影展示网站
  10. 冲浪涨停预警,让你快速跟上涨停板通达信选股指标图解