首页 技术教程 实用代码 注册破解 正则表达式 网址导航 电子书籍

PHP程序开发中的中文编码问题

PHP程序设计中中文编码问题曾经困扰很多人,导致这个问题的原因其实很简单,每个国家(或区域)都规定了计算机信息交换用的字符编码集,如美国的扩展 ASCII 码, 中国的 GB2312-80,日本的 JIS 等。作为该国家/区域内信息处理的基础,字符编码集起着统一编码的重要作用。字符编码集按长度分为 SBCS(单字节字符集),DBCS(双字节字符集)两大类。早期的软件(尤其是操作系统),为了解决本地字符信息的计算机处理,出现了各种本地化版本(L10N),为了区分,引进了 LANG, Codepage 等概念。但是由于各个本地字符集代码范围重叠,相互间信息交换困难;软件各个本地化版本独立...
类别:网页编程 - PHP技术    查看:104    更新:2014-05-19

比较全面的PHP开发编码规范

目录1 编写目的2 整体要求3 安全规范3.1 包含文件3.1.1 命名规则3.1.2 存放规则3.2 安全规则3.3 一些针对PHP的规则3.4 其它处理规则3.4.1 对输入参数值进行转义处理3.4.2 操作大HTML文本 4 编码规范4.1 命名规范4.1.1 变量命名4.1.2 类4.1.3 方法或函数4.1.4 缩写词4.1.5 数据库表名4.1.6 数据库字段4.2 书写规则4.2.1 代码缩进4.2.2 大括号{ }书写规则4.2.3 小括号( )和函数、关键词等4.2.4 =符号书写4.2.5 if else swith for while等书写4.2.6 类的构造函数4.2.7 语句断行, 每行控制在80个字符以内4.2.8 不要不可思议的数字4.2.9 true/false和0/1判断4.2.10 避免嵌入式赋值4.2.11 错误返回检测规则4.3 程序注释4.3.1 程序头注释块4....
类别:网页编程 - PHP技术    查看:102    更新:2014-05-19

PHP对GB编码动态转UTF-8几种方法评测

在《IP地址->地理位置转换的测评》一文中提到用ip2addr函数直接读取IP数据库文件是效率最高的,相比用MySQL数据库存储IP数据,用SQL查询是效率最低的。但是IP数据库文件QQWry.dat是GB2312编码的。现在我需要UTF-8编码的地理位置结果。如果用MySQL方法,可以在数据存入数据库时就转换为UTF-8编码,一劳永逸。但是QQWry.dat文件又无法修改,只能把ip2addr函数的输出结果再进行动态转换。动态转换GB->UTF-8编码至少有四种方法:用PHP的iconv扩展转换用PHP的mb_string扩展转换用对换表转换,对换表存储在MySQL数据库中用对换表转换,对换表存储在文本文件中前两种方法要服务器作了相应设置(编...
类别:网页编程 - PHP技术    查看:128    更新:2014-05-19

使用PHP的编码功能

环境:中文w2k+apache+php4.06(smtp在linux上) 我在使用mail函数发信的时候发现,如果我的subject是中文,那么收到的mail就会把中文显示为"XXXX" 调用过程如下: <?php $to = "[email protected]"; $subject = "商城"; $msg = "注册会员成功<br>"; $msg .= "会员名:wayne<br>"; $msg .= "密码:wayne"; $headers = "From: [email protected]: text/html; charset=gb2312rn"; mail("$to", "$subject", "$msg...
类别:网页编程 - PHP技术    查看:71    更新:2014-05-19

C语言字符编码转换

使用libiconv. 本文包括libiconv实用简单介绍及几个例子程序。 libiconv实用非常简单,只有3步:  1.使用 conv_t iconv_open (const char* tocode, const char* fromcode); 打开描述符。 fromcode和tocode为编码类型。conv_open的详细介绍看man iconv_open http://www.gnu.org/software/libi ... v/iconv_open.3.html  2.使用 size_t iconv (iconv_t cd, const char* * inbuf, size_t * inbytesleft, char* * outbuf, size_t * outbytesleft); 进行编码转换。详细介绍看man 3 iconv。 http://www.gnu.org/software/libi ... biconv/iconv.3.html  3.close.int iconv_close (iconv_t cd); http://www.gnu.org/software/libi ... /i...
类别:程序开发 - C/C++    查看:136    更新:2014-05-19

Servlet中web请求的编码

Servlet中Web请求的编码是一个很伤脑筋的问题。使用多个Servlet容器的人一定知道,每个容器的缺省编码不一定一样。比如说,Jetty和Tomcat就不一样。很多人都喜欢在Jetty上进行开发,最终产品在Tomcat上运行。这个编码的差别很有可能在最后测试的时候给你一个不大不小的惊奇 - 一个伤脑筋的惊奇。 当用户从浏览器发送请求的时候,浏览器根据页面的编码,对参数进行编码。然后,把编码后的字节用ISO-8859-1进行编码然后传送给服务器。以UTF-8作为例子,在表单里的字符串“中国”,传送到服务器的过程是: 浏览器 “中国” => UTF-8 Encoding(“中国”)=> ISO-8859-1 Encoding(UTF-8 ...
类别:程序开发 - JAVA    查看:104    更新:2014-05-14

Java实现图像编码输出

图像编码输出的方法,提供编码进度监听,设置编码质量的支持(特定格式,例如 JPG)。这个方法支持的编码格式依赖运行环境里 ImageIO 已经注册 ImageWriter 集合。Java SE 6 中的 ImageIO 默认支持 JPG, BMP, PNG, GIF 等格式,也可以通过非标准类库添加 ImageIO 对图像格式的支持,比如安装 JAI_ImageIO 。/** *//*** 将 BufferedImage 编码输出成硬盘上的图像文件。* 这个方法支持的编码格式依赖运行环境里 ImageIO 已经注册 ImageWriter 集合。* * @param file 编码输出的目标图像文件名,文件名的后缀确定编码格式。* @param image 待编码的图像对象。* @param quality 编码压缩的百分比。* @para...
类别:程序开发 - JAVA    查看:94    更新:2014-05-14

PowerBuilder程序编码规范

1.1.1 全局变量命名规范全局变量以g开头,紧接类型+下划线变量功能名称,具体规则如以下Blob gblb_功能名Integer or Int gi_功能名Boolean gb_功能名Long gi_功能名Char gc_功能名character gc_功能名real gr_功能名Date gd_功能名String gs_功能名DateTime gdt_功能名Time gt_功能名Decimal gr_功能名Dec gr_功能名UnsignedInteger gui_功能名UnsignedInt gui_功能名UInt gui_功能名Double gr_功能名UnsignedLong gui_功能名ULong gui_功能名对象变量 go_功能名或者g对象简写_功能名1.1.2 本地变量命名规范全局变量以l开头,紧接类型+下划线变量功能名称,具体规则如以下Blob lblb_功能名Integer or Int li_功能名B...
类别:程序开发 - PowerBuilder    查看:112    更新:2014-05-10

编码与文件格式的对应关系及用途

  1、Audodesk FLC   这是一种古老的编码方案,常见的文件后缀为FLC和FLI。由于FLC仅仅支持256色的调色板,因此它会在编码过程中尽量使用抖动算法(也可以设置不抖动),以模拟真彩的效果。这种算法在色彩值差距不是很大的情况下几乎可以达到乱真的地步,例如红色A(R:255,G:0,B:0)到红色B(R:255,G:128,B:0)之间的抖动。这种格式现在已经很少被采用了,但当年很多这种格式被保留下来,这种格式在保存标准256色调色板或者自定义256色调色板是是无损的,这种格式可以清晰到像素,非常适合保存线框动画,例如CAD模型演示。现在这种格式很少见了。   2、Microsoft RLE   这是微软开发为AVI格式开发的一种编...
类别:程序开发    查看:120    更新:2014-05-10

URL编码方法的比较

javascript中存在几种对URL字符串进行编码的方法:escape(),encodeURI(),以及encodeURIComponent()。这几种编码所起的作用各不相同。escape() 方法:采用ISO Latin字符集对指定的字符串进行编码。所有的空格符、标点符号、特殊字符以及其他非ASCII字符都将被转化成%xx格式的字符编码(xx等于该字符在字符集表里面的编码的16进制数字)。比如,空格符对应的编码是%20。不会被此方法编码的字符: @ * / +encodeURI() 方法:把URI字符串采用UTF-8编码格式转化成escape格式的字符串。不会被此方法编码的字符:! @ # $& * ( ) = : / ; ? + 'encodeURIComponent() 方法:把URI字符串采用UTF-8编码格式转化...
类别:其它 - 字符编码    查看:120    更新:2014-05-09

GB2312编码

GB2312或GB2312-80是一个简体中文字符集的中国国家标准,全称为《信息交换用汉字编码字符集--基本集》,由中国国家标准总局发布,1981年5月1日实施。GB2312编码通行于大陆;新加坡等地也采用此编码。几乎所有的中文系统和国际化的软件都支持GB2312。GB2312标准共收录6763个汉字,其中一级汉字3755个,二级汉字3008个;同时,GB2312收录了包括拉丁字母、希腊字母、日文平假名及片假名字母、俄罗斯语西里尔字母在内的682个全形字符。GB2312的出现,基本满足了汉字的计算机处理需要,它所收录的汉字已经覆盖99.75%的使用频率。对于人名、古汉语等方面出现的罕用字,GB2312不能处理,这导致了后来GBK及GB18030汉字字符集的出现。...
类别:其它 - 字符编码    查看:130    更新:2014-05-09

GB编码的一些常识

GB编码标准中,比较常用的是GB2312和GBK两种,GB2312是GBK的一个子集,GB2312编码范围是 0xA1A1 - 0xFEFE ,如果纯粹的 GB2312编码,处理起来是什分简单的,但处理GBK字符集时有些小的提示,先说说GBK编码的标准吧:  GBK 采用双字节表示,总体编码范围为 8140-FEFE,首字节在 81-FE 之间,尾字节在 40-FE 之间,剔除 xx7F 一条线。总计 23940 个码位,共收入 21886 个汉字和图形符号,其中汉字(包括部首和构件)21003 个,图形符号 883 个。全部编码分为三大部分:1. 汉字区。包括:a. GB 2312 汉字区。即 GBK/2: B0A1-F7FE。收录 GB 2312 汉字 6763 个,按原顺序排列。b. GB 1300...
类别:其它 - 字符编码    查看:121    更新:2014-05-09

Unicode编码,简要解释UCS、UTF、BMP、BOM等名词

这是一篇程序员写给程序员的趣味读物。所谓趣味是指可以比较轻松地了解一些原来不清楚的概念,增进知识,类似于打RPG游戏的升级。整理这篇文章的动机是两个问题:问题一: 使用Windows记事本的“另存为”,可以在GBK、Unicode、Unicode big endian和UTF-8这几种编码方式间相互转换。同样是txt文件,Windows是怎样识别编码方式的呢?我很早前就发现Unicode、Unicode big endian和UTF-8编码的txt文件的开头会多出几个字节,分别是FF、FE(Unicode),FE、FF(Unicode big endian),EF、BB、BF(UTF-8)。但这些标记是基于什么标准呢?问题二: 最近在网上看到一个ConvertUTF.c,实现了UTF-32...
类别:其它 - 字符编码    查看:127    更新:2014-05-09

UTF-8编码的详细讲解

这篇文章说明了在 POSIX 系统 (Linux,Unix) 上使用 Unicode/UTF-8 所需要的信息. 在将来不远的几年里, Unicode 已经很接近于取代 ASCII 与 Latin-1 编码的位置了. 它不仅允许你处理处理事实上存在于地球上的任何语言文字, 而且提供了一个全面的数学与技术符号集, 因此可以简化科学信息交换. UTF-8 编码提供了一种简便而向后兼容的方法, 使得那种完全围绕 ASCII 设计的操作系统, 比如 Unix, 也可以使用 Unicode. UTF-8 就是 Unix, Linux 已经类似的系统使用 Unicode 的方式. 现在是你了解它的时候了. 什么是 UCS 和 ISO 10646? 国际标准 ISO 10646 定义了 通用字符集 (Universal Character Set, U...
类别:其它 - 字符编码    查看:188    更新:2014-05-09

小波变换在IPTV编码中的应用

一、引言IPTV业务主要用来为电视机、手机和电脑等终端提供电视节目直播(LTV)、视频点播业务(VoD)、准视频点播(NVoD)、时移电视点播(TSTV)以及视频即时通信等服务,这些服务都涉及到大量的图像与视频数据,这些数据在传输时需要相当大的带宽,而且需要相当高的QoS保证。因此,在通过网络扩容来不断增加带宽和采用各种网络技术来节约带宽的同时,如何通过编码技术将原始图像和视频在传输前进行有效压缩也成为了人们所关注的焦点。研究表明,图像和视频数据都是高度相关的,一幅图像的内部以及视频序列中的相邻图像之间存在着大量的冗余信息。比如一张教室的照片,图像的某些区域可能是一均匀着色墙或规则显示的窗等,因此...
类别:其它 - 多媒体    查看:122    更新:2014-05-08

使用PHP的编码功能:mime.inc

<?php // $Horde: horde/lib/MIME.php,v 1.63 2001/08/08 21:00:27 chuck Exp $ $mime_types = array( TYPETEXT => 'text', 'text' => TYPETEXT, TYPEMULTIPART => 'multipart', 'multipart' => TYPEMULTIPART, TYPEMESSAGE => 'message', 'message' => TYPEMESSAGE, TYPEAPPLICATION => 'application', 'application' => TYPEAPPLICATION, TYPEAUDIO => 'audio', 'audio' => TYPEAUDIO, TYPEIMAGE => 'image', 'image' => TYPEIMAGE, TYPEVIDEO =&...
类别:网页编程 - PHP技术    查看:113    更新:2014-05-05