utf8中文截断原理以及php的实现

php截断字符串用的是substr,但是这个是无法截断中文的,原因就是中文是采用多字节编码。这里说一下针对utf8编码的汉字截断原理。

UTF-8的编码规则是这样的

1)对于单字节的符号,字节的第一位(字节的最高位)设为0,后面7位为这个符号的unicode码。因此对于英语字母,UTF-8编码和ASCII码是相同的。

2)对于n字节的符号(n>1),第一个字节的前n位都设为1,第n+1位设为0,后面字节的前两位一律设为10。剩下的没有提及的二进制位,全部为这个符号的unicode码。

下表总结了编码规则,字母x表示可用编码的位。

UTF-8编码方式(十六进制) | 十进制|(二进制)
—————+———————————————————————
0000 0000-0000 007F |0 – 127      | 0xxxxxxx
0000 0080-0000 07FF |192 – 223  |110xxxxx 10xxxxxx
0000 0800-0000 FFFF |224 – 239  |1110xxxx 10xxxxxx 10xxxxxx
0001 0000-0010 FFFF |240 – 247  |11110xxx 10xxxxxx 10xxxxxx 10xxxxxx

更详细的可以去看看utf8编码原理 (更多…)

utf8编码原理

在我的程序中,基本都使用utf8来编码(除非历史原因,实在是无法转换)。但我用的php在处理中文语言的时候,总显得有些生硬,总感觉没有处理英文那么流畅。

比如为什么统计字符的数目要远大于汉字的个数?

为什么截断中文乱码?

为什么一串英文所组成的字符串可以使用数组的方式访问但是中文字符串为什么就是乱码?

等等等等之类的问题。这一切的一切,都是因为对utf8编码不了解所导致的!虽然我们有mb_string这个扩展的对中文有很友好的支持,但对于编码原理,还是需要好好的了解一下。但对于初学者,我想你未必有耐心看完这篇文章,可以跳过直接看程序实例,这篇文章可以作为实例程序的参考作用。 (更多…)

强化twenty fifteen主题,twenty fifteen pro主题制作过程

被最新的twenty fifteen主题迷上了,这就是我心目中的样式!但有功能还是需要添加的,因此在twenty fifteen的主题基础上,增加了一些功能,命名为twenty fifteen pro主题,目前我所用的主题就是twenty fifteen pro主题。

目前增加的功能有这些

1.专辑文章

将一些文章整个成专辑,比如之前胡超的sublime这个专辑,随便点进去一篇文章,左侧栏都会出现该专辑的系列文章,并且在后台还可以手动控制其排序。

这样的好处就是能够将同类别,教程之类的文章聚合起来,更加利于阅读。

(更多…)

让sublime支持php,python等脚本的执行

sublime有自己的Build系统,默认的快捷键是ctrl+b。

只需要定制对应语言的执行命令,就可以支持各个语言的编译,执行了。

这里对几种主流的脚本语言执行做一些教程。

打开Tools->Build System -> New Build System  …

插入对应的json格式的配置即可

php

{
    "cmd": ["php", "$file"],
    "file_regex": "php$",
    "selector": "source.php"
}

保存为php.sublime-build,这下执行php不用老是跑去刷网页了,也不用老是开cmd窗口了。 (更多…)

让sublime支持c/c++语言的编译

sublime只是一个编辑器,让sublime支持c或者c++则是通过设定sublime快捷键调用相关的命令,达到编辑和执行c代码的目的。

首先需要下载一个c语言的编译器,对于 Windows 和 Linux 来说可以采用 gcc 。

For Windows:下载安装MinGW,然后在系统环境变量中添加

C:\MinGW\bin

(假设你把 MinGW安装在 C 盘),你安装到哪个路径就写哪个路径,别傻乎乎的直接复制啦,不然没用哦。

验证一下是否成功。win+r(win就是徽标),输入cmd,打开cmd窗口之后输入gcc -v看看,如果有gcc的信息说明成功了,如果显示gcc不是内部或外部命令,也不是可运行的程序那就是环境变量添加错啦!仔细检查一下呗。

最后在Sublime Text 2中Tools –> Build System –> New Build System…输入如下内容并保存为c.sublime-build (更多…)

sublime text自定义快捷键的方法

sublime text如何定义快捷键呢?下面来给出方法

sublime text2和sublime text3自定义快捷键的方法是一样的。打开Preferrences -> Key Bindings-User  这个就是用户自定义快捷键的配置文件了。可以参照  Preferrences -> Key Bindings-Default 这个系统默认的快捷键配置,里面就是一个大大的json啦。

不懂json?那不行,必须得学!

{ "keys": ["ctrl+shift+n"], "command": "new_window" }

keys对应的就是快捷键啦,而command对应的就是sublime的命令。如果想要修改快捷键,直接修改对应的keys里面的快捷键就可以啦。

如何查看command请查阅 http://imhuchao.com/965.html

(更多…)

sublime安装插件的方法

sublime安装插件非常简单。主要方式有两种

1.直接安装

打开菜单栏里的“Preferences”—>”Browse Packages”,打开包的位置

43a7d933c895d143c26dab9071f082025aaf076d

 

2.通过Package Control来安装
点击菜单栏的“Preferences”–>”Package Control”,或者可以使用快捷键CTRL+SHIFT+P 打开

在打开的终端窗口,输入“install”,下方就会提示“Package Control:install package”,用鼠标点击

这时候等待几秒,就会弹出一个终端,在终端输入你想要安装的插件,这里我以“AlignMent”插件为例,点击下方,就会自动会为你安装插件了。

重启Sublime Text3就会看到我们刚才安装的AlignMent插件了

sublime优秀插件推荐

最佳的Sublime Text 插件

朋友们你们好!我尝试着收集了最佳的ST插件,这些插件真的会改善你的工作流程。我搜索了很多网站,下面是我的成果。

WebInspector

在 JavaScript调试方面,这是一个令人惊讶的工具,Sublime上的完整的代码检查工具。
功能:使用绝对路径储存在用户设置中的项目断点,控制台,分步和断点调试器,栈追踪。这些都能够很棒的工作!而且Mozilla还提供了一个插件Fireplay让你连接到Firefox 开发工具和最简单的调试器JSHint

(更多…)

给sublime安装package control,让插件安装更简单

package control是什么东东?sublime要如何安装package control呢?且往下看。
package control就是sublime的插件管理中心,你可以通过这个东西来安装,更新或者卸载插件。插件能够增强sublime的功能,这个就不废话了

安装package control

1.使用快捷键 Ctrl+` (这个就是键盘Esc下面的那个), 打开sublime的控制台(这个控制台可以输入并且执行python代码)

sublime text3

import urllib.request,os; pf = 'Package Control.sublime-package'; ipp = sublime.installed_packages_path(); urllib.request.install_opener( urllib.request.build_opener( urllib.request.ProxyHandler()) ); open(os.path.join(ipp, pf), 'wb').write(urllib.request.urlopen( 'http://sublime.wbond.net/' + pf.replace(' ','%20')).read())

sublime text2

import urllib2,os; pf='Package Control.sublime-package'; ipp = sublime.installed_packages_path(); os.makedirs( ipp ) if not os.path.exists(ipp) else None; urllib2.install_opener( urllib2.build_opener( urllib2.ProxyHandler( ))); open( os.path.join( ipp, pf), 'wb' ).write( urllib2.urlopen( 'http://sublime.wbond.net/' +pf.replace( ' ','%20' )).read()); print( 'Please restart Sublime Text to finish installation')

(更多…)