PHP 中文字符串相关】的更多相关文章

1.字符串长度 中文字符串使用strlen() 获取字符串长度时一个UTF8的中文字符是3个字节长度:使用mb_strlen(),选定内码为UTF8,则会将一个中文字符当作长度1来计算 在对含中文字符串截取时 $str = "this你看我哪里像好人"; echo substr($str,4,4);//输出值为:你� echo mb_substr($str,4,4,'UTF-8');//输出值为:你看我哪 echo mb_strcut($str,4,4,'UTF-8');//输出值为:…
源:JNI 中文字符串传递 因为项目编码中通过JNI传递中文字符时出现乱码问题,特搜集了相关资料,整理如下: java内部是使用16bit的unicode编码(UTF-16)来表示字符串的,无论中文英文都是2字节:jni内部是使用UTF-8编码来表示字符串的,UTF-8是变长编码的unicode,一般ascii字符是1字节,中文是3字节:c/c++使用的是原始数据,ascii就是一个字节了,中文一般是GB2312编码,用两个字节来表示一个汉字. 1.java --> c/c++这种情况中,jav…
参考:什么是字符编码? 参考:Unicode 和 UTF-8 有何区别? 参考:python中文decode和encode转码 一.相关说明 Python 中关于字符串的操作只限于英文字母,当进行中文字符的操作的时候就会报错,以下将相关操作方法进行展示. 写在前面:如何获得系统的默认编码 ? >>> import sys >>> print sys.getdefaultencoding() ascii 通过如下代码查询不同的字符串所使用的编码,具体操作详见:用chard…
python字符串.字符串处理函数及字符串相关操作 字符串介绍 python字符串表示 Python除处理数字外还可以处理字符串,字符串用单撇号或双撇号包裹: >>> 'spam eggs' 'spam eggs' >>> 'doesn/'t' "doesn't" >>> "doesn't" "doesn't" >>> '"Yes," he said.'…
0x00 前言 第一次遇见字符串这个概念是在学 C 语言的时候,那时候觉得字符串也没有什么难的,不就是一个以 \0 结尾的 char 数组而已咯.后来在学习 PHP 的过程中也同样保持这个观念,不过在字符串还是纯英文的时候还是没什么问题的,但后面遇到要处理中文的时候就事故频发,然后搜索结果里的字符集.字符编码.多字节字符串.二进制安全各种概念搞得一头雾水,虽然最后的搜索结果都附有了解决方案但我还是觉得对于相关的知识需要理解和总结. 0x01 字符集 字符集(全称是编码字符集)是一个系统支持的所有…
问题:TP从服务器数据中取出的collection数据,当进一步在网页中进行分页显示时,需要调用order函数,实现类似如下图的排序. 当点击页面中的相关内容时,实现对服务器数据进行重排,就要调用TP编写的order函数. 但是,上述属性中包括int属性,包括中文字符串属性,我们希望按单位名称和单位简称按汉字拼音进行排序,如何修改. 解决方法: 将TP的order函数源码从(order函数位于think-helper\src\Collection.php文件中) public function…
参考网络文章,个人工作总结 题记:一般对字符串的操作有以下几种:求长度,截取字符串,拼接字符串,找字符串中某个字符的索引 1 expr 命令 1.1 定义 man 手册 Print the value of EXPRESSION to standard output. A blank line below separates increasing precedence groups. EXPRESSION may be: ARG1 | ARG2 ARG1 , otherwise ARG2 ARG…
#获取中文长度mb_strlen($str,$encoding); #截取中文字符串 mb_substr(str,start,length,encoding);…
通过ajax提交请求,返回的response所带的中文字符串一直显示为乱码,写了如下代码也无效: response.setCharacterEncoding("UTF-8"); response.getWriter().print("返回结果"); 后来在web.xml 添加如下描述,终于解决问题: <filter> <filter-name>CharacterEncodingFilter</filter-name> <fi…
package my.unicode; import java.util.regex.Matcher; import java.util.regex.Pattern; public class UnicodeSwitchChinese { /** * * 转:http://blog.csdn.net/z69183787/article/details/25742307 * * 将字符串(不限于中文)转换为十六进制Unicode编码字符串 */ public static String strin…
先说下普通字符串(英文)比较: 一般使用双等来判断(==),如果还需要类型相同那么就用三等(===) 1. 双等(==)是完全向后兼容的,如果两个操作数类型不一致,它会在某些时候自动对操作数进行类型转换 var strA = "hello world"; var strB = new String("hello world"); if(strA == strB){ alert("true!"); //弹出true } 这两个变量含有相同的字符序列…
用php截取中文字符串会出现各种问题,做一简单汇总,文中的问题暂时还未解决,有大神解决了问题欢迎指教 <?php header('Content-Type:text/html;charset=utf-8');//页面采用utf-8编码 //header('Content-Type:text/html;charset=gbk');//页面采用gbk编码 /** * 实现中文截取无乱码 * @param $str:要截取的字符串 * @param $start:开始位置 * @param $leng…
1.Thinkphp 模板中直接对数据处理:{$data.name|substr=0,3} 2.中文字符串截取函数:mb_substr=0,14,'utf-8' 3.中文字符串统计:iconv_strlen(字符串,"UTF-8") <div style="margin-bottom: 8px;"> <a href="#" target="_blank" class="my_a" >…
前言 在游戏中,我们经常会遇到汉字的多行显示,比如名字竖行显示等.如下图: 为了实现上面的效果,lua实现分行是通过  \n  实现的,所以我们需要取出汉字,然后插入 \n 实现分行效果.还有一种就是设置Label的的实际大小,也可以实现分行效果. 操作中文字符串,获取字符串长度 local str = "哈哈哈哈" local _,strTest = string.gsub(str,'[\128-\255][\128-\255]',' ') local _, count = stri…
转自:http://www.oschina.net/code/snippet_613962_17070 <?php header("content-type:text/html;charset=utf-8"); /** 此函数的作用是反转中文字符串 mb_strlen() 获取字符的长度 mb_substr() 获取字符的单个元素 krsort() 按照键值逆序排序数组 implode() 将数组拼接为字符串 explode() 使用字符串分隔字符串 */ function st…
在加入 发布招聘功能的时候,出现问题了,就是修改招聘信息的时候.编辑器内容不显示,只显示英文,中文不显示,以前记得开发此功能没这问题啊!然后各种原因找不出,没办法,从编辑器函数入手,一步一步查,查到 1 此目录include/ckeditor/ckeditor_php5.php文件 代码块: 1 $out = "<textarea name=\"" . $name . "\"" . $attr . ">" .htm…
前段用thinkphp写了一个系统,感觉thinkphp学起来比较容易,开发起来了比较顺手,其中一个关键的因素就是它的模版引擎相当强大,使用方法跟smarty类似,在模版中还可以用php代码,有模版包含.继承的等很多好的功能…… 但是我发现thinkphp在模版函数中,没有中文字符串的截取函数,有个substr可以截取,但是不是基于中文的,当使用utf8编码的时候,由于3个字符代表一个中文,如果想截取的内容混杂中文/数字/英文字符串的时候就会出问题,最后一个字符很有可能混乱,这个问题很头大.于是…
在PHP中,我们都知道有专门的mb_substr和mb_strlen函数,可以对中文进行截取和计算长度,但是,由于这些函数并非PHP的核心函数,所以,它们常常有可能没有开启.当然,如果是用的自己的服务器,则只要在php.ini中开启即可.如果是用的虚拟主机,而服务器又没有开启这方面的函数的话,那就需要我们自己写出点适合咱自己的函数来了. 以下几个函数用起来颇为顺手的.不过要知道,得在utf-8环境下使用. header('Content-type:text/html;charset=utf-8'…
字符串截取是一个非常常见的编程任务,而往往带中文的字符串截取会经常用到.虽然不难,但是自己写函数实现又耗费时间,这里介绍一个比较好用的字符串截取函数,能够胜任基本的需求了 <?php function sysSubStr($string,$length,$append = false) { if(strlen($string) <= $length ) { return $string; } else { $i = 0; while ($i < $length) { $stringTMP…
中文网站一般会选择两种编码:gbk/gb2312或是utf-8. gbk编码下每个中文字符所占字节为2,例: $zhStr = ‘您好,中国!’; echo strlen($zhStr); // 输出:12 UTF-8编码下每个中文字符占3个字节. $zhStr = ‘您好,中国!’; echo strlen($zhStr); // 输出:18 那么如何计算这组中文字符串的长度呢?有人可能会说gbk下获取中文字符串长度除以2,utf-8编码下除以3不就行了吗?但是您要考虑字符串并不老实,99%的…
另开一文分析字符串相关的各种算法,以及用到的各种数据结构,包括前缀树后缀树等各种树. 先来一个汇总, 算法: 本文中提到的字符串匹配算法有:KMP, BM, Horspool, Sunday, BF, KR, AC(其中用到了Trie树) 统计字符出现个数.获取KV内容:Trie树(字典树.前缀树) 回文子串长度算法有:Manacher's Algorithm 题目: 最长回文子串 最长重复子串 最长不重复子串 以下为正文: 最长连续回文串(Longest Palindromic Substri…
这里的输出的长度是6,那么一个汉字的字符长度就是3咯,可是老师演示的一个字符的长度却是2,百思不得其解. 查了一下资料发现,这个问题的答案与系统所采用的字符编码方式有关: 1. utf-8 如果系统采用的是utf-8,那么strlen(“新闻”)=6,即一个汉字占用3个字节.linux系统默认情况下采用的该种编码方式. 2. gb2312 如果系统采用的是gb2312,则strlen(“新闻”)=4,即一个汉字占用2个字节.windows中文版采用的该种编码方式. 汉字编码:GB_2312 字符…
package test; /** * * @Title 书的信息类 * @author LR * @version 1.0 * @since 2016-04-21 */ public class Book { private String book_id; private String book_name; private String publishing_house; public Book(String book_id, String book_name, String publishi…
转自:http://hi.baidu.com/hehehehello/item/dcc44a4a6afc690e6dc2f08b C++处理中文的问题困扰我很久了.之前一旦遇到中文基本就投诸java怀抱了. 今天看到一个漂亮的c++程序,遂豁然开朗.总结一下分享给大家: 问题描述: c++ 中 char*/string 形式的字符串无法正确的对中文字符串进行处理(如 find, strlen, substr 等常规操作) . 比如当你在char* 中 find 英文逗号时,有可能匹配的不只是逗号…
先说一下我的经历,以及解决问题的而过程. 在使用SpringMVC的时候,最开始的时候在配置文件中使用<mvc:annotation-driven />去自动注册DefaultAnnotationHandlerMapping与AnnotationMethodHandlerAdapter 两个bean,这是spring MVC为@Controllers分发请求所必须的.再后来,Ajax请求需要返回字符串,遂在控制器上使用@ResponseBody注解来实现,这时候遇到的一个问题是,返回中文字符的…
这篇文章介绍了php 中文字符串首字母的获取函数,有需要的朋友可以参考一下 function chineseFirst($str) { $str= iconv("UTF-8","gb2312", $str);    //如果程序是gbk的,此行就要注释掉 //判断字符串是否全都是中文     if (preg_match("/^[\x7f-\xff]/", $str))     {         $fchar=ord($str{0});   …
我在网上找到了一个oc版加密的工具类,但是加密中文就出现大问题 const char *cstr = [self cStringUsingEncoding:encoding]; NSData *data = [NSData dataWithBytes:cstr length:self.length]; uint8_t digest[CC_SHA1_DIGEST_LENGTH]; CC_SHA1(data.bytes, data.length, digest); NSMutableString*…
中文字符串在c/c++中表示为字节序列,在分词的时候需要根据不同的编码方式进行分词,一般分词器需要转换成统一的编码方式再进行转换,有些分词器如ICTCLAS在分词的时候可以不显示定义编码方式,可以检测字符串的编码方式再进行转换,本文就项目中用到的几种编码转换方式进行总结,主要利用了iconv进行编码转换. const bchar_t zero[1] = {L'\0'}; void gbk_utf16le(char* inbuf, size_t inlen, char* outbuf) { ico…
公司让用python自动生成代码,以前没看过python.所以匆匆的看了两天python就连猜带蒙就上马开干了..因此好多操作可能看的时候看懂了,用的时候知道有这么个东西,具体用法就忘记了..用到了就上网查查,总结总结. 接下来就是一些跟python字符串相关的帖子中找来的,给自己看的字符串问题汇总 1.判断字符串为空    ------> 用 len(str) == 0 可以判断 没问题. 但是 isNull 是什么东东,貌似在python下不行啊...有机会再关注这个问题 2.取子串 str…
<?php header("content-type:text/html;charset=utf-8"); /** 此函数的作用是反转中文字符串 mb_strlen() 获取字符的长度 mb_substr() 获取字符的单个元素 krsort() 按照键值逆序排序数组 implode() 将数组拼接为字符串 explode() 使用字符串分隔字符串 */ function str_rev_gb($str){ //判断输入的是不是utf8类型的字符,否则退出 if(!is_stri…