常用字符集和编码格式

  1. 1. 常用字符集和编码

常用字符集和编码

  • ASCII 美国信息交换标准代码

编码规则: 7位表示一个字符,共128个字符

缺点:只能显示26个拉丁字母、阿拉伯数字和英文标点符号

  • EASCII 欧洲扩展字符集

编码规则:8位表示一个字符,共256个字符

缺点:虽解决了部分西欧语言的字符显示问题,但对其他更多的语言依然无力

  • GB2312/GB2312-80 等中文字符集

编码规则:把127号的字符取消掉(即EASCII),两个大于128的字符连在一起表示一个汉字,高字节从 0xA1 到 0xF7, 低字节从 0xA1 到 0xFE

  • GBK 中文字符集

微软对 GB2312-80 进行扩充后制定了 GBK 编码。

  • Unicode 统一字符集

包含超过十万个字符,让电脑能够解析世界上数十种语言。

编码规则:使用4个字节的数字来表达字母、符号、文字。

Unicode 指的是字符集,而 UTF-32, UTF-16, UTF-8 则说的是编码方案。

  • UTF-32

编码规则:用上述 Unicode 的4字节的数字来表达字母、符号、文字

  • UTF-16

编码规则:

若字符编码 U 小于 0x10000, 也就是小于十进制的 65535,则使用2个字节表示;

若字符编码 U 大于 0x10000, 也就是大于十进制的 65535,则使用4个字节表示。
  • UTF-8

是针对对 Unicode 的可变长度字符编码,可表示 Unicode 中任何字符,且编码中第一个字节与 ASCII 兼容。

编码规则是使用1到4个字节为每个字符编码:

128个 US-ASCII 字符只需用1个字节编码,从 U+0000 到 U+007F

带有附加符号的拉丁文、希腊文、西里尔字母、亚美尼亚语、希伯来文、阿拉伯文、叙利亚文等,则使用第2个字节编码,从 U+0080 到 U+07FF

其他基本多文中平面中的字符则使用3个字节编码

其他极少辅助平面中的字符则使用4个字节编码

使用 workspace 和 source map 功能在 chrome 中修改并保存文件

  1. 创建测试文件

    创建 test/test.html,引入 test/test.css

  2. 打开本地服务器

    这时候审查 test.html 的页面元素修改其 css 属性并不会生效。

  3. 建立本地和服务器的文件映射

    1. 打开 chrome dev tools
    2. 设置 Workspace,添加文件夹 test/
    3. 双击这个新增的文件夹,增加映射

      URL prefix 填写浏览器地址栏对应的服务器根目录

      Folder path 填写本地文件夹的路径

  4. 审查元素,修改 test.html 中的元素的 css 属性

    用编辑器打开 test.css 就会发现修改保存到了文件中了。

  1. 使用 Sass 更进一步

    上述方法能直接将我们在浏览器中对 css 的修改保存到本地文件中,

    但我们可能不是直接编写 css 文件,而是使用了 Sass/Less 等预编译工具,这时候 source map 功能就派上用场了。

  2. 配置 source map 让 chrome 支持 Sass

    小赖使用的是 Webstorm 的 Sass 插件,其能监听 scss 文件的改变,自动生成新的 css 文件。

    但默认一个 scss 文件只会生成对应的 css 文件,我们按以上的方法在浏览器中只能修改 css 文件,而不能修改源 scss 文件。

    解决方法是:

     1. 修改 webstorm 的 sass 插件配置
    
             --no-cache --update $FileName$:$FileNameWithoutExtension$.css
    
         修改为:
    
             --sourcemap --no-cache --update $FileName$:$FileNameWithoutExtension$.css
    
         这时候 test.scss 在自动编译时不仅会生成 test.css 文件,还会生成 test.css.map 文件
    
     2. 开启 chrome 的 source map 功能
    
             打开 dev tools 后,勾选 General->Enable CSS source maps 
    

    这时候,我们审查 test.html 中的元素,则会看到对应的 test.scss 文件

    但在浏览器中修改 css 属性时,实际上修改的是 test.scss 编译生成的 test.css 文件。

    我们希望直接修改的是 test.scss 文件,这时候点击 dev tools 中的 Source,找到对应的 test.scss 文件修改后 cmd + s 保存即可。

  3. 第6点其实有点鸡肋

    目前 source map 能让我们在浏览器中修改 css 属性后保存到对应的 css 文件中。

    而要修改 Sass 文件只能借 Workspace 功能在 Source 面板中修改后保存,但这时候修改的 Sass 文件并不会自动编译为对应的 css 文件。

    在浏览器中修改 Sass 文件保存到本地后,浏览器中的 css 并没有即时改变。

Git fork 别人的项目后更新代码的方法

  1. 举个例子,需要 fork 这个项目 https://github.com/tarobjtu/WebFundamentals.git

  2. 点击 fork, 就会复制一份代码到自己的 repo https://github.com/laispace/WebFundamentals.git

  3. 本地 clone 自己 repo 中的这个项目

    $ git clone https://github.com/laispace/WebFundamentals.git

  4. 添加自己的远程仓库

    $ cd WebFundamentals
    $ git remote add laispace https://github.com/laispace/WebFundamentals.git

  5. 修改代码后进行 push

    $ git add —all
    $ git commit -m ‘edit some files’
    $ git push

这时候,如果源仓库 tarobjtu 的项目代码进行了更新,而我们自己 fork 下来的代码想要合并这些更新怎么做呢?

  1. 添加源项目的远程仓库

    $ git remote add tarobjtu https://github.com/tarobjtu/WebFundamentals.git
    // 这时候可以看到有两个源了
    $ git remote
    // laispace
    // tarobjtu

  2. 拉取源仓库的代码到本地

    $ git fetch tarobjtu

  3. 合并源仓库的 master 分支代码到本地

    $ git merge tarobjtu/master

  4. 提交代码到我们自己的仓库

    $ git add —all
    $ git commit -m ‘合并源仓库代码’
    $ git push

grunt 学习笔记

  • 配置 Gruntfile.js

    grunt.initConfig({
      // 读取 package.json 文件
      pkg: grunt.file.readJSON('package.json'),
    
      // 其他配置,如下面的 jshint/uglify
      // ...
    });
    
  • 设置 jshint 代码审查

    执行命令 ~# grunt jshint

      jshint: {
            options: {
                // 使用 jshint-stylish 高亮错误
              reporter: require('jshint-stylish') 
            },
          // 配置任务启动时要验证的文件
           build: ['Grunfile.js', 'src/**/*.js']
         }
    

阅读全文

wordpress for SAE 搬家心得

原来laispace.com 用的便宜香港空间,速度实在太慢忍受不了了!小赖尝试将wordpress从自己主机上搬迁到SAE上,提高访问速度,总结步骤如下:

1.备份文章内容

进入laispace【后台】-【工具】-【导出】,选择【所有内容】-【下载导出的文件】生成一个laispace.xml文件到本地

2.备份数据库内容

进入laispace phpMyAdmin 【数据库名】-【导出】,生成一个laispace.sql文件到本地

阅读全文

Goagent使用心得

Goagent实在是太棒了,可畅游被Qiang了的网站。初次安装可详见 https://code.google.com/p/goagent/wiki/InstallGuide


小赖使用总结:

1.goagent突然上不去了?

可能是国内cn的代理IP被封了,这时候可打开 local/proxy.ini 修改profile = google_cn 为 profile = google_hk


2.翻Qiang点击切换按钮麻烦?

打开 SwitchySharp ->选项->切换规则,点击【新建规则】,编写如下:注意 ://.twitter.com/ 里的是通配符,指可匹配任意字符



3.手动切换代理很麻烦?

按2的设置后,点击 SwitchySharp->自动切换模式,那么每次浏览时,goagent就会按建立好的切换规则来选择是否使用代理来翻Qiang了



4.打开goagent.exe麻烦?

找到goage.exe右键创建快捷方式,把它放到 开始菜单-所有程序-启动 的文件夹里(win7下即C:\Users\Administrator\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup)


5.还想开机自启动?

按3和4设置后,每次只要一开机,goagent就启动了,每次只要一翻Qiang,goagent就自动代理了。

打开local/proxy.ini 找到visible = 1改为visible = 0可将goagent隐藏在任务栏


6.看完一部片(别邪恶啊)就上不去了?

Goagent一个APPID有1G/天的流量使用,刷刷twitter玩玩facebook就够了,可要是在youtube上看视频耗掉了流量,1G耗完就会显示 “goagent 服务器未发送任何数据,因此无法加载该网页“,这并不是像1所说的代理IP被封了或者goagent自己抽风了,而是当前APPID的1G流量已经用完。打开https://appengine.google.com/dashboard?&app_id=s~**yourAppid** 就可以看到Outgoing Bandwidth为100%啦!


7.出现了6所说的情况流量不够用?

可回到https://appengine.google.com/,点击【Create Application】,输入Application Identifier 如myappid-2(要check Availability),输入Application Title(可任填),然后再次点击【Create Application】。然后打开 local/proxy.ini 编辑 appid = myappid-1 | myappid-2 (添加myappid-2,用 | 隔开,再打开servr/uploader.bat 输入 myappid-2,就可以将这个新的配置上传了,打开https://appengine.google.com会发现myappid-2在Running,代表新增的myappid-2已经激活,重启goagent.exe,打开浏览器,又可以继续翻Qiang啦!


以此类推,可最多申请十个APPID,共10G的流量。