努力思考 + 实践, 眼高手低是不行的. 注册 | 登陆
浏览模式: 标准 | 列表全部文章

[置顶] 新博上线。

中文字符编码备忘(GB2312、GBK、GB18030)

From: http://www.ibm.com/developerworks/cn/java/jsp_dbcsz/

GB2312-80 是在国内计算机汉字信息技术发展初始阶段制定的,其中包含了大部分常用的一、二级汉字,和 9 区的符号。该字符集是几乎所有的中文系统和国际化的软件都支持的中文字符集,这也是最基本的中文字符集。其编码范围是高位0xa1-0xfe,低位也是 0xa1-0xfe;汉字从 0xb0a1 开始,结束于 0xf7fe;

GBK 是 GB2312-80 的扩展,是向上兼容的。它包含了 20902 个汉字,其编码范围是 0x8140-0xfefe,剔除高位 0x80 的字位。其所有字符都可以一对一映射到 Unicode 2.0,也就是说 JAVA 实际上提供了 GBK 字符集的支持。这是现阶段 Windows 和其它一些中文操作系统的缺省字符集,但并不是所有的国际化软件都支持该字符集,感觉是他们并不完全知道 GBK 是怎么回事。值得注意的是它不是国家标准,而只是规范。随着 GB18030-2000国标的发布,它将在不久的将来完成它的历史使命。

GB18030-2000(GBK2K) 在 GBK 的基础上进一步扩展了汉字,增加了藏、蒙等少数民族的字形。GBK2K 从根本上解决了字位不够,字形不足的问题。它有几个特点,

  • 它并没有确定所有的字形,只是规定了编码范围,留待以后扩充。
  • 编码是变长的,其二字节部分与 GBK 兼容;四字节部分是扩充的字形、字位,其编码范围是首字节 0x81-0xfe、二字节0x30-0x39、三字节 0x81-0xfe、四字节0x30-0x39。
  • 它的推广是分阶段的,首先要求实现的是能够完全映射到 Unicode 3.0 标准的所有字形。
  • 它是国家标准,是强制性的。

Tags: 编码, gb2312, gbk, gb18030

Windows Vista 学习资料及工具

Vista 博客
微软MVP专家盆盆的博客,均为原创文章,讲解细微深入易懂。

System Repair Engineer
系统维护辅助工具,支持Windows 98 or later
(Also Support Windows Vista)

Tags: vista, 学习, 资料

Php ini_set ini_get可操作配置参数列表

为了使自己的程序在不同的平台中拥有更好的兼容性,很多时候我们都要获取当前Php的运行环境参数。比如我们常用到的:获取 magic_quotes_gpc状态,来决定当表单提交时我们是否转义(addslashes)数据;设定max_execution_time来延长 程序的执行时间;设定error_reporting使自己的项目在开发与运营阶段切换;设定memory_limit加大内存等等…

详见全文

» 阅读全文

Tags: php, php扫盲

C语言中字符数组的赋值

char *p = "abcd"

"abcd"是在进程运行的内存中存储的,语句执行时,动态分配了内存空间(4字节,根据系统的寻址位数来确定)给变量p使用,并将"abcd"所在的内存地址值放到p的内存中

char p = 'a'

也是类似的过程不过p分配的是一个byte的空间,并被赋于了'a'的asc码值(56?)

char p[20] = "abc"

试图将一个地址值放入在p=p[0]的byte空间内..结果当然不行

char p[20]={'a','b','c'}


这个应该是ok的

Tags: c

资料备忘,保持更新。

Tags: php, mysql, html

安全编程法则

版权声明:可以任意转载,但转载时必须标明原作者charlee。
原始链接:http://tech.idv2.com/2008/04/19/secure-website-checklist/

标有 (*) 的检查项目表示该项是针对相关问题的根本解决方法,应当尽最大努力去完成这些内容。 未标 (*) 的项目,表示该项并不能完全消除安全隐患,只是说通过这种方法可以避免发生安全问题。

  1. SQL注射
    1. (*) 在组合SQL语句时要使用SQL变量绑定功能
    2. (*) 如果数据库不提供变量绑定,那么需要对构成SQL的所有变量进行转义
    3. 不要将错误信息原封不动地显示在浏览器中。
    4. 为访问数据库的用户设置适当的权限。
  2. 操作系统命令行注射
    1. (*) 避免使用能启动shell命令的语言
    2. 使用的语言如果允许启动shell命令,则需要对该功能的参数种的所有变量进行检查,确保只包含合法的操作
  3. 不检查路径名参数/目录遍历
    1. (*) 不要将外部传进来的参数直接作为文件名来使用
    2. (*) 将打开文件的操作限制在固定的目录中,并禁止文件名中包含路径
    3. 为Web服务器上的文件设置正确的访问权限
    4. 检查文件名
  4. 会话管理的问题
    1. (*) 用难以推测的内容作为会话ID
    2. (*) 不要在URL中保存会话ID
    3. (*) 为https协议中使用的cookie设置secure属性
    4. (*) 登录成功后生成新的会话
    5. (*) 登录成功后,在会话ID之外再生成一个秘密信息,每次访问页面时都检查之
    6. 不使用固定值作为会话ID
    7. 将会话ID保存到Cookie中时,要设置有效期限
  5. 跨站脚本攻击(XSS)
    • 不允许输入HTML内容时的解决方法
      1. (*) 输出到页面上的所有内容都要转义
      2. (*) 输出URL时仅允许以“http://”或“https://”开头的URL
      3. (*) 不要动态生成<script>…</script>的内容
      4. (*) 不要从外部网站读入样式表
      5. 检查输入内容
    • 允许输入HTML内容时的解决方法
      1. (*) 解析输入的HTML内容,生成解析树,然后提取其中的非脚本部分
      2. 使用脚本删除输入的HTML内容中的相关字符串
    • 通用解决方法
      1. (*) 应答的HTTP头重指定Content-Type的charset属性
      2. 为避免Cookie情报泄漏,应禁止Trace方法,并对所有Cookie设置HttpOnly属性
  6. 跨站请求伪造(CSRF)
    1. (*) 所有页面都通过POST来访问,在前一页面的hidden中随机生成一个信息,提交后的页面检查该信息,正确时才予以执行
    2. (*) 执行业务之前再次要求输入密码
    3. (*) 确认Referer是否正确,只有正确时才执行
    4. 执行重要操作时,向预先设置的邮件地址中发送邮件
  7. HTTP头注射
    1. (*) 不直接输出HTTP头,而使用运行环境提供的头信息输出API
    2. (*) 无法使用API时,要禁止输入的头信息中的换行
    3. 删除所有外部输入中的换行
  8. 邮件盗用(通过某种手段使邮件发送到攻击者指定的地址)
    1. (*) 不使用外部参数作为邮件头信息
    2. 必须用外部参数设置头信息时,要删除其中的危险字符。

Tags: php安全

CSS hack:区分IE6,IE7,firefox

区别IE6FF

       background:orange;*background:blue;

区别IE6IE7
       background:green !important;background:blue;

区别IE7与FF:
        background:orange*background:green;

区别FFIE7IE6
        background:orange;*background:green !important;*background:blue;

注:IE都能识别*;标准浏览器(如FF)不能识别*; IE6能识别*,但不能识别 !important, IE7能识别*,也能识别!important; FF不能识别*,但能识别!important

  IE6 IE7 FF
* ×
!important ×

另外再补充一个,下划线"_",
IE6支持下划线,IE7和firefox均不支持下划线。(推荐)

于是大家还可以这样来区分IE6IE7firefox
: background:orange;*background:green;_background:blue;

注:不管是什么方法,书写的顺序都是firefox的写在前面,IE7的写在中间,IE6的写在最后面。

Tags: css, hack, ie6, ie7, firefox

Records:10012345678910»