谁能帮我看一下,为什么输出cftool 拟合函数输出里输出的表格下面有乱码,还有为什么排序部分在运行的时候进不去?

excel出现中文乱码的解决教程
excel出现中文乱码的解决教程
  文档经常会遇到打开出现中文乱码的问题,具体该如何解决中文乱码的问题呢?下面是学习啦小编带来的关于excel中文乱码的解决教程,希望阅读过后对你有所启发!
  excel中文乱码的解决教程
  乱码解决步骤1:处理前的数据截图如下
excel中文乱码的解决教程图1
  乱码解决步骤2:从上图可以知道处了数字和英文是正常显示的,中文字符是乱码。打开EditPlus软件
excel中文乱码的解决教程图2
  乱码解决步骤3:用EditPlus软件打开出现乱码的excel文档
excel中文乱码的解决教程图3
  乱码解决步骤4:这里将数字部分模糊处理了。将这些数据全选,然后复制到excel中就大功告成了。
excel中文乱码的解决教程图4
  excel表格中数字全部变成#字符乱的方法
  1、如图,下载的表格,准考证号这一列完全看不到。
excel表格中数字全部变成#字符乱的方法图1
  2、这时候选中这一列,右键点击&设置单元格格式&
excel表格中数字全部变成#字符乱的方法图2
  3、在对话框中选择&数值&小数位数,选择&0&,点击确定。
excel表格中数字全部变成#字符乱的方法图3
  4、完整的准考证号就出来了。
excel表格中数字全部变成#字符乱的方法图4
  5、这时的表格看起来很乱,各种对齐方式一起存在呢。在对齐方式中选择水平居中。
excel表格中数字全部变成#字符乱的方法图5
  6、完整又美观的表格就这样完成了。
excel表格中数字全部变成#字符乱的方法图6
看了excel中文乱码的解决教程还看了:
【猜您感兴趣】
在Excel中录入好数据以后或许会有把excel转成JPG的需求,具体该怎么做呢?下面是由学习啦小编分享的如何把excel转成jpg的方法,以供大家阅读和学习。 如何把excel...
Excel中的数据具体该如何进行设置缩小从而打印呢?下面是学习啦小编带来的关于excel设置缩小打印的教程,希望阅读过后对你有所启发! excel设置缩小打印的教程: ...
EXCEL表格使用过程中有时为了数据的规范便于统计,要限定某些单元格录入的数据为某些格式或限定某些内容,这就需要用到EXCEL的数据有效性功能。下面小编就怎么限...
在Excel中经常需要把选定的区域进行放大或缩小的需求,或许有的朋友并不知道放大或缩小该如何操作,如果不懂的朋友欢迎一起来学习研究。下面是学习啦小编带来的...Python中常用操作字符串的函数与方法总结
转载 &更新时间:日 16:45:47 & 投稿:goldensun
这篇文章主要介绍了Python中常用操作字符串的函数与方法总结,包括字符串的格式化输出与拼接等基础知识,需要的朋友可以参考下
例如这样一个字符串 Python,它就是几个字符:P,y,t,h,o,n,排列起来。这种排列是非常严格的,不仅仅是字符本身,而且还有顺序,换言之,如果某个字符换了,就编程一个新字符串了;如果这些字符顺序发生变化了,也成为了一个新字符串。
在 Python 中,把像字符串这样的对象类型(后面还会冒出来类似的其它有这种特点的对象类型,比如列表),统称为序列。顾名思义,序列就是“有序排列”。
比如水泊梁山的 108 个好汉(里面分明也有女的,难道女汉子是从这里来的吗?),就是一个“有序排列”的序列。从老大宋江一直排到第 108 位金毛犬段景住。在这个序列中,每个人有编号,编号和每个人一一对应。1 号是宋江,2 号是卢俊义。反过来,通过每个人的姓名,也能找出他对应的编号。武松是多少号?14 号。李逵呢?22 号。
在 Python 中,给这些编号取了一个文雅的名字,叫做索引(别的编程语言也这么称呼,不是 Python 独有的。)。
索引和切片
前面用梁山好汉的为例说明了索引。再看 Python 中的例子:
&&& lang = "study Python"
&&& lang[0]
&&& lang[1]
有一个字符串,通过赋值语句赋给了变量 lang。如果要得到这个字符串的第一个单词 s,可以用 lang[0]。当然,如果你不愿意通过赋值语句,让变量 lang 来指向那个字符串,也可以这样做:
&&& "study Python"[0]
效果是一样的。因为 lang 是标签,就指向了 "study Python" 字符串。当让 Python 执行 lang[0] 的时候,就是要转到那个字符串对象,如同上面的操作一样。只不过,如果不用 lang 这么一个变量,后面如果再写,就费笔墨了,要每次都把那个字符串写全了。为了省事,还是复制给一个变量吧。变量就是字符串的代表了。
字符串这个序列的排序方法跟梁山好汉有点不同,第一个不是用数字1表示,而是用数字 0 表示。不仅仅 Python,其它很多语言都是从 0 开始排序的。为什么这样做呢?这就是规定。当然,这个规定是有一定优势的。此处不展开,有兴趣的网上去 google 一下,有专门对此进行解释的文章。
上面的表格中,将这个字符串从第一个到最后一个进行了排序,特别注意,两个单词中间的那个空格,也占用了一个位置。
通过索引能够找到该索引所对应的字符,那么反过来,能不能通过字符,找到其在字符串中的索引值呢?怎么找?
&&& lang.index("p")
就这样,是不是已经能够和梁山好汉的例子对上号了?只不过区别在于第一个的索引值是 0。
如果某一天,宋大哥站在大石头上,向着各位弟兄大喊:“兄弟们,都排好队。”等兄弟们排好之后,宋江说:“现在给各位没有老婆的兄弟分配女朋友,我这里已经有了名单,我念叨的兄弟站出来。不过我是按照序号来念的。第 29 号到第 34 号先出列,到旁边房子等候分配女朋友。”
在前面的例子中 lang[1] 能够得到原来字符串的第二个字符 t,就相当于从原来字符串中把这个“切”出来了。不过,我们这么“切”却不影响原来字符串的完整性,当然可以理解为将那个字符 t 赋值一份拿出来了。
那么宋江大哥没有一个一个“切”,而是一下将几个兄弟叫出来。在 Python 中也能做类似事情。
'study Python'
#在前面“切”了若干的字符之后,再看一下该字符串,还是完整的。
&&& lang[2:9]
通过 lang[2:9]要得到部分(不是一个)字符,从返回的结果中可以看出,我们得到的是序号分别对应着 2,3,4,5,6,7,8(跟上面的表格对应一下)字符(包括那个空格)。也就是,这种获得部分字符的方法中,能够得到开始需要的以及最后一个序号之前的所对应的字符。有点拗口,自己对照上面的表格数一数就知道了。简单说就是包括开头,不包括结尾。
上述,不管是得到一个还是多个,通过索引得到字符的过程,称之为切片。
切片是一个很有意思的东西。可以“切”出不少花样呢?
'study Python'
&&& b = lang[1:]
# 得到从 1 号到最末尾的字符,这时最后那个需要不用写
'tudy Python'
&&& c = lang[:]
# 得到所有字符
'study Python'
&&& d = lang[:10]
# 得到从第一个到 10 号之前的字符
'study pyth'
在获取切片的时候,如果分号的前面或者后面的序号不写,就表示是到最末(后面的不写)或第一个(前面的不写)
lang[:10]的效果和 lang[0:10]是一样的。
&&& e = lang[0:10]
'study pyth'
那么,lang[1:]和 lang[1:11]效果一样吗?请思考后作答。
&&& lang[1:11]
'tudy pytho'
&&& lang[1:]
'tudy python'
果然不一样,你思考对了吗?原因就是前述所说的,如果分号后面有数字,所得到的切片,不包含该数字所对应的序号(前包括,后不包括)。那么,是不是可以这样呢?lang[1:12],不包括 12 号(事实没有 12 号),是不是可以得到 1 到 11 号对应的字符呢?
&&& lang[1:12]
'tudy python'
&&& lang[1:13]
'tudy python'
果然是。并且不仅仅后面写 12,写 13,也能得到同样的结果。但是,我这个特别要提醒,这种获得切片的做法在编程实践中是不提倡的。特别是如果后面要用到循环的时候,这样做或许在什么时候遇到麻烦。
如果在切片的时候,冒号左右都不写数字,就是前面所操作的 c = lang[:],其结果是变量 c 的值与原字符串一样,也就是“复制”了一份。注意,这里的“复制”我打上了引号,意思是如同复制,是不是真的复制呢?可以用下面的方式检验一下
&&& id(lang)
id()的作用就是查看该对象在内存地址(就是在内存中的位置编号)。从上面可以看出,两个的内存地址一样,说明 c 和 lang 两个变量指向的是同一个对象。用 c=lang[:]的方式,并没有生成一个新的字符串,而是将变量 c 这个标签也贴在了原来那个字符串上了。
&&& lang = "study python"
&&& c = lang
如果这样操作,变量 c 和 lang 是不是指向同一个对象呢?或者两者所指向的对象内存地址如何呢?看官可以自行查看。
字符串基本操作
字符串是一种序列,所有序列都有如下基本操作:
len():求序列长度
:连接 2 个序列
: 重复序列元素
in :判断元素是否存在于序列中
max() :返回最大值
min() :返回最小值
cmp(str1,str2) :比较 2 个序列值是否相同
通过下面的例子,将这几个基本操作在字符串上的使用演示一下:
“+”连接字符串
&&& str1 + str2
'abcdabcde'
&&& str1 + "--&" + str2
'abcd--&abcde'
这其实就是拼接,不过在这里,看官应该有一个更大的观念,我们现在只是学了字符串这一种序列,后面还会遇到列表、元组两种序列,都能够如此实现拼接。
&&& "a" in str1
&&& "de" in str1
&&& "de" in str2
in 用来判断某个字符串是不是在另外一个字符串内,或者说判断某个字符串内是否包含某个字符串,如果包含,就返回 True,否则返回 False。
&&& max(str1)
&&& max(str2)
&&& min(str1)
一个字符串中,每个字符在计算机内都是有编码的,也就是对应着一个数字,min()和 max()就是根据这个数字里获得最小值和最大值,然后对应出相应的字符。关于这种编号是多少,看官可以 google 有关字符编码,或者 ASCII 编码什么的,很容易查到。
&&& cmp(str1, str2)
将两个字符串进行比较,也是首先将字符串中的符号转化为对一个的数字,然后比较。如果返回的数值小于零,说明第一个小于第二个,等于 0,则两个相等,大于 0,第一个大于第二个。为了能够明白其所以然,进入下面的分析。
&&& ord('a')
&&& ord('b')
&&& ord(' ')
ord()是一个内建函数,能够返回某个字符(注意,是一个字符,不是多个字符组成的串)所对一个的 ASCII 值(是十进制的),字符 a 在 ASCII 中的值是 97,空格在 ASCII 中也有值,是 32。顺便说明,反过来,根据整数值得到相应字符,可以使用 chr():
&&& chr(97)
&&& chr(98)
于是,就得到如下比较结果了:
&&& cmp("a","b")
#a--&97, b--&98, 97 小于 98,所以 a 小于 b
&&& cmp("abc","aaa")
&&& cmp("a","a")
看看下面的比较,是怎么进行的呢?
&&& cmp("ad","c")
在字符串的比较中,是两个字符串的第一个字符先比较,如果相等,就比较下一个,如果不相等,就返回结果。直到最后,如果还相等,就返回 0。位数不够时,按照没有处理(注意,没有不是 0,0 在 ASCII 中对应的是 NUL),位数多的那个天然大了。ad 中的 a 先和后面的 c 进行比较,显然 a 小于 c,于是就返回结果 -1。如果进行下面的比较,是最容易让人迷茫的。看官能不能根据刚才阐述的比较远离理解呢?
&&& cmp("123","23")
&&& cmp(123,23)
# 也可以比较整数,这时候就是整数的直接比较了。
字符串中的“乘法”,这个乘法,就是重复那个字符串的含义。在某些时候很好用的。比如我要打印一个华丽的分割线:
&&& str1*3
'abcdabcdabcd'
&&& print "-"*20
# 不用输入很多个`-`
--------------------
要知道一个字符串有多少个字符,一种方法是从头开始,盯着屏幕数一数。哦,这不是计算机在干活,是键客在干活。
键客,不是剑客。剑客是以剑为武器的侠客;而键客是以键盘为武器的侠客。当然,还有贱客,那是贱人的最高境界,贱到大侠的程度,比如岳不群之流。
键客这样来数字符串长度:
&&& a="hello"
&&& len(a)
使用的是一个函数 len(object)。得到的结果就是该字符串长度。
&&& m = len(a) # 把结果返回后赋值给一个变量
&&& type(m)
# 这个返回值(变量)是一个整数型
&type 'int'&
字符串格式化输出
什么是格式化?在维基百科中有专门的词条,这么说的:
格式化是指对磁盘或磁盘中的分区(partition)进行初始化的一种操作,这种操作通常会导致现有的磁盘或分区中所有的文件被清除。
不知道你是否知道这种“格式化”。显然,此格式化非我们这里所说的,我们说的是字符串的格式化,或者说成“格式化字符串”,都可以,表示的意思就是:
格式化字符串,是 C、C++ 等程序设计语言 printf 类函数中用于指定输出参数的格式与相对位置的字符串参数。其中的转换说明(conversion specification)用于把随后对应的 0 个或多个函数参数转换为相应的格式输出;格式化字符串中转换说明以外的其它字符原样输出。
这也是来自维基百科的定义。在这个定义中,是用 C 语言作为例子,并且用了其输出函数来说明。在 Python 中,也有同样的操作和类似的函数 print,此前我们已经了解一二了。
如果将那个定义说的通俗一些,字符串格式化化,就是要先制定一个模板,在这个模板中某个或者某几个地方留出空位来,然后在那些空位填上字符串。那么,那些空位,需要用一个符号来表示,这个符号通常被叫做占位符(仅仅是占据着那个位置,并不是输出的内容)。
&&& "I like %s"
'I like %s'
在这个字符串中,有一个符号:%s,就是一个占位符,这个占位符可以被其它的字符串代替。比如:
&&& "I like %s" % "python"
'I like python'
&&& "I like %s" % "Pascal"
'I like Pascal'
这是较为常用的一种字符串输出方式。
另外,不同的占位符,会表示那个位置应该被不同类型的对象填充。下面列出许多,供参考。不过,不用记忆,常用的只有 %s 和 %d,或者再加上 %f,其它的如果需要了,到这里来查即可。
字符串(采用 str()的显示)
字符串(采用 repr()的显示)
二进制整数
十进制整数
十进制整数
八进制整数
十六进制整数
指数 (基底写为 e)
指数 (基底写为 E)
浮点数,与上相同
指数(e) 或浮点数 (根据显示长度)
指数(E)或浮点数 (根据显示长度)
&&& a = "%d years" % 15
&&& print a
当然,还可以在一个字符串中设置多个占位符,就像下面一样
&&& print "Suzhou is more than %d years. %s lives in here." % (2500, "qiwsir")
Suzhou is more than 2500 years. qiwsir lives in here.
对于浮点数字的打印输出,还可以限定输出的小数位数和其它样式。
&&& print "Today's temperature is %.2f" % 12.235
Today's temperature is 12.23
&&& print "Today's temperature is %+.2f" % 12.235
Today's temperature is +12.23
注意,上面的例子中,没有实现四舍五入的操作。只是截取。
常用的字符串方法
字符串的方法很多。可以通过 dir 来查看:
&&& dir(str)
['__add__', '__class__', '__contains__', '__delattr__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__getslice__', '__gt__', '__hash__', '__init__', '__le__', '__len__', '__lt__', '__mod__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__rmod__', '__rmul__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '_formatter_field_name_split', '_formatter_parser', 'capitalize', 'center', 'count', 'decode', 'encode', 'endswith', 'expandtabs', 'find', 'format', 'index', 'isalnum', 'isalpha', 'isdigit', 'islower', 'isspace', 'istitle', 'isupper', 'join', 'ljust', 'lower', 'lstrip', 'partition', 'replace', 'rfind', 'rindex', 'rjust', 'rpartition', 'rsplit', 'rstrip', 'split', 'splitlines', 'startswith', 'strip', 'swapcase', 'title', 'translate', 'upper', 'zfill']
这么多,不会一一介绍,要了解某个具体的含义和使用方法,最好是使用 help 查看。举例:
&&& help(str.isalpha)
Help on method_descriptor:
isalpha(...)
S.isalpha() -& bool
Return True if all characters in S are alphabetic
and there is at least one character in S, False otherwise.
按照这里的说明,就可以在交互模式下进行实验。
&&& "python".isalpha()
# 字符串全是字母,应该返回 True
&&& "2python".isalpha()
# 字符串含非字母,返回 False
这个函数的作用是将字符串根据某个分割符进行分割。
&&& a = "I LOVE PYTHON"
&&& a.split(" ")
['I', 'LOVE', 'PYTHON']
这是用空格作为分割,得到了一个名字叫做列表(list)的返回值,关于列表的内容,后续会介绍。还能用别的分隔吗?
&&& b = "www.itdiffer.com"
&&& b.split(".")
['www', 'itdiffer', 'com']
去掉字符串两头的空格
这个功能,在让用户输入一些信息的时候非常有用。有的朋友喜欢输入结束的时候敲击空格,比如让他输入自己的名字,输完了,他来个空格。有的则喜欢先加一个空格,总做的输入的第一个字前面应该空两个格。
这些空格是没用的。Python 考虑到有不少人可能有这个习惯,因此就帮助程序员把这些空格去掉。
S.strip() 去掉字符串的左右空格
S.lstrip() 去掉字符串的左边空格
S.rstrip() 去掉字符串的右边空格
&&& b=" hello "
# 两边有空格
&&& b.strip()
特别注意,原来的值没有变化,而是新返回了一个结果。
&&& b.lstrip()
# 去掉左边的空格
&&& b.rstrip()
# 去掉右边的空格
字符大小写的转换
对于英文,有时候要用到大小写转换。最有名驼峰命名,里面就有一些大写和小写的参合。如果有兴趣,可以来这里看自动将字符串转化为驼峰命名形式的方法。
在 Python 中有下面一堆内建函数,用来实现各种类型的大小写转化
S.upper() #S 中的字母大写
S.lower() #S 中的字母小写
S.capitalize() # 首字母大写
S.isupper() #S 中的字母是否全是大写
S.islower() #S 中的字母是否全是小写
S.istitle()
&&& a = "qiwsir,Python"
&&& a.upper()
# 将小写字母完全变成大写字母
'QIWSIR,PYTHON'
# 原数据对象并没有改变
'qiwsir,Python'
&&& b = a.upper()
'QIWSIR,PYTHON'
&&& c = b.lower()
# 将所有的小写字母变成大写字母
'qiwsir,Python'
'qiwsir,Python'
&&& a.capitalize() # 把字符串的第一个字母变成大写
'Qiwsir,Python'
# 原数据对象没有改变
'qiwsir,Python'
&&& b = a.capitalize() # 新建立了一个
'Qiwsir,Python'
&&& a = "qiwsir,github"
# 这里的问题就是网友白羽毛指出的,非常感谢他。
&&& a.istitle()
&&& a = "QIWSIR"
# 当全是大写的时候,返回 False
&&& a.istitle()
&&& a = "qIWSIR"
&&& a.istitle()
&&& a = "Qiwsir,github" # 如果这样,也返回 False
&&& a.istitle()
&&& a = "Qiwsir"
# 这样是 True
&&& a.istitle()
&&& a = 'Qiwsir,Github' # 这样也是 True
&&& a.istitle()
&&& a = "Qiwsir"
&&& a.isupper()
&&& a.upper().isupper()
&&& a.islower()
&&& a.lower().islower()
再探究一下,可以这么做:
&&& a = "This is a Book"
&&& a.istitle()
&&& b = a.title()
# 这样就把所有单词的第一个字母转化为大写
'This Is A Book'
&&& b.istitle()
# 判断每个单词的第一个字母是否为大写
join 拼接字符串
用“+”能够拼接字符串,但不是什么情况下都能够如愿的。比如,将列表(关于列表,后续详细说,它是另外一种类型)中的每个字符(串)元素拼接成一个字符串,并且用某个符号连接,如果用“+”,就比较麻烦了(是能够实现的,麻烦)。
用字符串的 join 就比较容易实现。
'www.itdiffer.com'
&&& c = b.split(".")
['www', 'itdiffer', 'com']
&&& ".".join(c)
'www.itdiffer.com'
&&& "*".join(c)
'www*itdiffer*com'
这种拼接,是不是简单呢?
您可能感兴趣的文章:
大家感兴趣的内容
12345678910
最近更新的内容
常用在线小工具如何解决从DREAMWEAVER中导出的表格出现乱码的問題
按时间排序
网页上指定的编码,和浏览器默认的编码不符.看看你网页上的&meta http-equiv=&content-type& content=&text/charset=gb2312&&charset=gb2312还是charset=UTF-8在浏览器的 查看--编码 中有选择的.
格式不一样吧。。。
解决乱码几小点:
1.配置过滤器,可以选择自己写,既然你用的SSH框架就更简单了,直接用Spring的过滤器,web.xml里配置一下即可。
2.Jsp页面设置编码,所有地方都要相同,我习惯用GBK
&%@ page contentType=text/charset=GBK %
也可以使用HTML的页面编码配置
&meta http-equiv=Content-Type content=text/ charset=GBK
3.配置Tomcat(我们用,别的服务器另找)编码
在server.xml中配置,如:
&Connector port=8080 maxHttpHeaderSize=8192
maxThreads=150 minSpareThreads=25 maxSpareThreads=75
enableLookups=false redirectPort=8443 acceptCount=100
connectionTimeout=20000 disableUploadTimeout=true URIEncoding=GBK /
4.如果还出现乱码,只能用这招了,我很少用一般用Form提交前两种方式就不会出现乱码,用get请求,在url后追加中文参数前两种不管用,需配置Tomcat或者第四种,重新编码
在EasyRecovery Pro文件修复里有Excel修复,试试看,网上其它的一些恢复方法包括运行Access后,导入excel数据,或者在其它excel里用=[你的文件名]sheet1!A1这些都可以试试。
貌似这是网上破解方法第一份有效破解的,虽然很简单,但是因为360耍了点小花样,很多人在问,但是都没有找到解决方法,下面告诉大家我的绝招是:1,打开我的电脑,最上面的菜单栏里点工具,点文件夹选项,点查看,把隐藏文件扩展名前的对号去掉:2,找到你360浏览器导出的书签网页,修改名称,在名称htm后面增加一个l,变成html格式;3,进如你的火狐点击书签,管理书签,导入HTML,导入我们刚刚修改好的360书签,正常情况下就搞定了,你就能在书签工具栏里看到新的书签了;4,最后一招,在万不得已的情况下用火狐打开360书签,一个个的打开保存:以上方法本人亲测有效,如还有疑问,可以留言联系。另外建议你最好不要用火狐中国版,启动速度超慢,本方法对想将360书签导入其他热门浏览器类似谷歌QQ都有效。声明:鉴于360爱做小动作和无用创新的高尚品质,此方法在本人回答此问题之日是有效的。
使用标签设置页面编码
这个标签的作用是声明客户端的浏览器用什么字符集编码显示该页面,xxx 可以为 GB2312、GBK、UTF-8(和 MySQL 不同,MySQL 是 UTF8)等等。因此,大部分页面可以采用这种方式来告诉浏览器显示这个页面的时候采用什么编码,这样才不会造成编码错误而产生乱码。但是有的时候我们会 发现有了这句还是不行,不管 xxx 是哪一种,浏览器采用的始终都是一种编码,这个情况我后面会谈到。
请注意, 是属于 HTML 信息的,仅仅是一个声明,仅表明服务器已经把 HTML 信息传到了浏览器。
header(&content-type:text/ charset=xxx&);
这个函数 header() 的作用是把括号里面的信息发到 http 标头。如果括号里面的内容为文中所说那样,那作用和 标签基本相同,大家对照第一个看发现字符都差不多的。但是不同的是如果有这段函数,浏览器就会永远采用你所要求的 xxx 编码,绝对不会不听话,因此这个函数是很有用的。为什么会这样呢?那就得说说 http 标头和 HTML信息的差别了:
http 标头是服务器以 http 协议传送 HTML 信息到浏览器前所送出的字串。而 标签是属于 HTML 信息的,所以 header() 发送的内容先到达浏览器,通俗点就是 header() 的优先级高于 (不知道可不可以这样讲)。假如一个 php 页面既有header(&content-type:text/charset=xxx&),又有,浏览器就只认前者 http 标头而不认 meta 了。当然这个函数只能在 php 页面内使用。
同样也留有一个问题,为什么前者就绝对起作用,而后者有时候就不行呢?这就是接下来要谈的Apache 的原因了。
AddDefaultCharset
Apache 根目录的 conf 文件夹里,有整个 Apache 的配置文档 httpd.conf。
用文本编辑器打开 httpd.conf,第 708 行(不同版本可能不同)有 AddDefaultCharset xxx,xxx为编码名称。这行代码的意思:设置整个服务器内的网页文件 http 标头里的字符集为你默认的 xxx字符集。有这行,就相当于给每个文件都加了一行 header(&content-type:text/ charset=xxx&)。这下就明白为什么明明 设置了是 utf-8,可浏览器始终采用 gb2312 的原因。
如果网页里有 header(&content-type:text/ charset=xxx&),就把默认的字符集改为你设置的字符集,所以这个函数永远有用。如果把 AddDefaultCharset xxx 前面加个&#&,注释掉这句,而且页面里不含 header(&content-type…&),那这个时候就轮到 meta 标签起作用了。
下面列出以上的优先顺序:
.. header(&content-type:text/ charset=xxx&)
.. AddDefaultCharset xxx
如果你是 web 程序员,建议给你的每个页面都加个header(&content-type:text/charset=xxx&),这样就可以保证它在任何服务器都能正确显示,可移植性也比较强。
php.ini 中的 default_charset 配置
php.ini 中的 default_charset = &gb2312& 定义了 php 的默认语言字符集。一般推荐注释掉此行,让浏览器根据网页头中的 charset 来自动选择语言而非做一个强制性的规定,这样就可以在同台服务器上提供多种语言的网页服务。其实 php 开发中的中文编码并没有想像的那么复杂,虽然定位和解决问题没有定规,各种运行环境也各不尽然,但后面的原理是一样的。了解字符集的知识是解决字符问题的 基础。不过,随着中文字符集的变化,不仅仅是 php 编程,中文信息处理中的问题还是会存在一段时间的。
首先,应该保持所有的编码是一致的,如果一边配置utf-8,一边又是gbk,那么因为编码规则不同,自然出现乱码。如果在编码统一的情况下还是出现乱码,就可以写个过滤器了。
  尊敬的用户,您好!很高兴为您答疑。  这个问题主要是因为您导出的文件的编码格式与火狐浏览器默认的格式不同所致,您可以使用记事本或别的文本编辑器另存为编码格式为utf-8的文件后再进行导入尝试。  希望我的回答对您有所帮助,如有疑问,欢迎继续咨询我们。
感谢您为社区的和谐贡献力量请选择举报类型
经过核实后将会做出处理感谢您为社区和谐做出贡献
确定要取消此次报名,退出该活动?
请输入私信内容:

我要回帖

更多关于 matlab输出函数 的文章

 

随机推荐