汉字

drupal views 限制汉字输出长度

◇◆丶佛笑我妖孽 提交于 2019-12-09 19:39:13
需要修改views.module模块: 一、增加一个函数 //截取中文字符串 function gbsubstr($gbk, $start, $len) { $tmpstr = ""; $strlen = $start + $len; for($i = 0; $i < $strlen; $i++) { if(ord(substr($gbk, $i, 1)) > 0xa0) { $tmpstr .= substr($gbk, $i, 2); $i++; } else $tmpstr .= substr($gbk, $i, 1); } return $tmpstr; }; 二、修改 views_trim_text函数: function views_trim_text($alter, $value) { $gbk=mb_convert_encoding($value, "GBK", "UTF-8");//增加的 //dsm(strlen($gbk)); //dsm($value); if ( strlen ($gbk) > $alter['max_length']) { //将drupal_ strlen 修改为 strlen //$value = drupal_substr($value, 0, $alter['max_length']); $u8 = gbsubstr($gbk,

Oracle 判断汉字 [\u4e00-\u9fa5]

给你一囗甜甜゛ 提交于 2019-12-04 17:32:25
最近由于单位提了一个需求,要判断提供的用户名称里不有全角字符,至少有两个汉字。找了半天,想通过正则表达式来解决,但测试了好久才发现,Oracle的正则函数REGEXP_LIKE 不支持“\un 匹配 n,其中 n 是以四位十六进制数表示的 Unicode 字符”的判断,例如,\u00A9 匹配版权符号 (&copy,而标准的正则是可以支持的,所以这个办法行不通,只能过期其他办法来实现。 在网上找了半天,都没有确切的实现办法,有通过Length()和lengthb ()来判断,但不完美,所以就把自己的写法记录下来希望能有用处。 对于全角字符,ascii值的范围是\uFF00-\uFFFF,都是FF段的,所以可以通过转换成ascii 来判断,instr(asciistr(replace( '在《<23\', '\')),'\FF',1,1) > 0 就可以实现对于汉字,范围太大,只能通过函数来完成,于是写了如下函数: create or replace function get_chinese(v_name in varchar2) return integer is i int; v_count integer; v_code varchar2(10); begin v_count := 0; /** 用途: 返回字符串中汉字的个数 原理说明: