1、PHP本身是无编码的,所有的字符串通常都视为二进制流。因此只需要输入的字符串为Utf-8即可。若字符串采用其他编码,可以使用iconv系列函数转换编码。

2、注$content = iconv("utf-8","gb2312//IGNORE",$content);IGNORE忽略错误

<?php
$f=fopen("test.txt", "wb");
$text=utf8_encode("a!");
 
//先用函数utf8_encode将所需写入的数据变成UTF编码格式。
 
$text="\xEF\xBB\xBF".$text;
 
//"\xEF\xBB\xBF",在没有utf8中文情况下,这串字符不可缺少,生成的文件将成为UTF-8格式,否则依然是ANSI格式。
 
fputs($f, $text);
 
//写入。
 
fclose($f);
?>

这样创建出的文件编码格式确实是utf-8,但是放在文件中的汉字出现了乱码的现象,经过一番调试,代码如下:

<?php
$ctxtsubmit="好呀";
$f=fopen("../".$file, "wb");
    //$text=utf8_encode($ctxtsubmit);
    //先用函数utf8_encode将所需写入的数据变成UTF编码格式。
    $text="\xEF\xBB\xBF".$ctxtsubmit;
     //"\xEF\xBB\xBF",在没有utf8中文情况下,这串字符不可缺少,生成的文件将成为UTF-8格式,否则依然是ANSI格式。
    fputs($f, $text);
    //写入。
     fclose($f);
?>

至于"\xEF\xBB\xBF"为什么加这字符串,我也不明白

一般php创建的文件默认不是utf-8格式的,在网上搜罗的解决办法如下:的更多相关文章

  1. QQ文件没有读取权限,60017导致QQ无法登陆的终极解决办法

    每隔一段时间,我的QQ就无法登陆,提示:QQ文件没有读取权限,60017导致QQ无法登陆的终极解决办法 点击了解详情发现里面的解决办法根本不起作用,网上 说的各种解决办法都不起作用,解决办法如下 1. ...

  2. sqlserver 2008 创建数据库的时候不是空库,里面总有数据的解决办法

    SqlServer2008 里面有个系统数据库 Model 数据库,在创建新数据库的时候,会以它为模板创建,所以如果发现你的Model数据库比较大,说明里面有很多模板数据.此时如果需要去创建没有数据的 ...

  3. python写入文件中遇到 UnicodeEncodeError: ‘gbk’ codec can’t encode character 错误的解决办法

    在写入TXT文件时,某些页面总是报UnicodeEncodeError: ‘gbk’ codec can’t encode character错误,网上找了半天也没找到解决办法. 后来终于找到了解决办 ...

  4. VMWare虚拟机提示:锁定文件失败,打不开磁盘...模块"Disk"启动失败的解决办法

    我出现该问题的原因: 昨天电脑一下子卡死,于是我就重启了电脑,重启之后我没有打开VMware虚拟机,结果第二天一上班打开VMware就发现出现了“锁定文件失败,打不开磁盘......模块"D ...

  5. dede修改templets模板文件夹后,出现“无法在这个位置找到: ”错误的解决办法

    修改templets模板文件夹的方法: 首先找到系统配置文件common.inc.php,此文件存放在Include目录下,打开common.inc.php来修改默认模板目录templets, 查找: ...

  6. eclipse中误删tomcat后,文件都报错,恢复server时无法选择tomcat7.0解决办法

    创建Tomcat v7.0 Server 不能进行下一步. 解决方法: 1.退出 eclipse 2.到[工程目录下]/.metadata/.plugins/org.eclipse.core.runt ...

  7. vue-quill-editor 封装成组件;图片文件流上传;同一页面多个编辑器样式异常解决办法

    使用方法: 引入并注册组件,然后直接使用: @getcode是同步获取编辑器内容的::contentDefault是编辑器的默认内容: 注意:如果同一个页面多个编辑器,参数id不能相同,否则只有第一个 ...

  8. 修改tnsnames.ora文件中配置内容中的连接别名后,连接超时解决办法

    1.tnsnames.ora文件中配置内容中的连接别名:由upaydb修改为IP地址 2.连接超时 定位原因: PLSQL登录界面的数据库列表就是读的tnsname.ora中连接的别名,这个文件中连接 ...

  9. "无法启动应用程序,工作组信息文件丢失,或是已被其他用户已独占方式打开"解决办法

    当程序用ado的jet4.0方式连接mdb数据库的时候,对于设有access数据库密码的mdb的访问居然报错“无法启动应用程序,工作组信息文件丢失,或是已被其他用户已独占方式打开”. ADOConne ...

随机推荐

  1. Xcode 6 越狱开发基础

    最近接触到XCode越狱开发的问题,越狱开发首先iphone设备得越狱,然后安装Appsync,安装之后,安装ipa将不再验证程序签名的有效性,不签名的程序也可以直接在设备上运行,只需要保证IPA本身 ...

  2. AIM Tech Round 3

    题目链接:(做出几道说几道^_^) A.Juicer B.Checkpoints C.Letters Cyclic Shift 思路: A题每次加上橘子的体积,超过就清零,计数器加1 B题比较 (lo ...

  3. TCMalloc优化MySQL、Nginx、Redis内存管理

    TCMalloc(Thread-Caching Malloc)与标准glibc库的malloc实现一样的功能,但是TCMalloc在效率和速度效率都比标准malloc高很多.TCMalloc是 goo ...

  4. Mac下的截屏功能

    全屏截图 对全屏的截图我们可以通过按 苹果键(花键)+Shift键+3来执行,之后伴随着清脆的一声提示音后,在桌面上就会生成一个图片文件,这就是刚刚截屏的图片了,默认文件类型是PNG的. 自定义截图 ...

  5. sql server 2014内存表

    内存数据库,指的是将数据库的数据放在内存中直接操作.相对于存放在磁盘上,内存的数据读写速度要高出很多,故可以提高应用的性能.微软的SQL Server 2014已于2014年4月1日正式发布,SQL ...

  6. Python多线程学习资料1

    一.Python中的线程使用: Python中使用线程有两种方式:函数或者用类来包装线程对象. 1.  函数式:调用thread模块中的start_new_thread()函数来产生新线程.如下例: ...

  7. ASP.NET WebForm中前台代码如何绑定后台变量

    转载自 http://www.cnblogs.com/lerit/archive/2010/10/22/1858007.html 经常会碰到在前台代码中要使用(或绑定)后台代码中变量值的问题.一般有& ...

  8. cloudstack 修改显示名称

    http://192.168.153.245:8900/client/api?command=updateVirtualMachineid=922d15e1-9be0-44ac-9494-ce5afc ...

  9. Thinkphp框架 -- ajax无刷新上传图片

    用Thinkphp框架做无刷新上传图片 视图层 View <!doctype html> <html lang="en"> <head> < ...

  10. assert函数(python)

    assert语句: 用以检查某一条件是否为True,若该条件为False则会给出一个AssertionError. 用法: assert type(x)=int and x>=0 如果不满足后面 ...