本文目录一览:
- 1、JS代码UNICODE转UTF8看不懂解释一下谢谢
- 2、js正则如何实现1到70个字符,并且首尾不得为空格
- 3、Discuz!论坛标题字数如何突破80字符的限制?
- 4、输入n行字符(如英文单词)每行不超过80个字符,以回车结束每一行输出该字符串并统计每一行的单词数
JS代码UNICODE转UTF8看不懂解释一下谢谢
1: UTF stands for UCS Transformation Format, where UCS stands for Universal Character Set.
2:utf-8 是unicode 这种编码的储存格式(以一到三个字节“存放”一个字符--理论上可以达到六个)
3: unicode 是编码。Unique, Universal, and Uniform character encoding--它在概念上与ISO 10646标准相对应 (目前版本UCS-2以两字节‘描述’一个字符)
4: 根据上面所述:可以根据unicode/UCS-2的编码特性(与ASCII编码在字面上“相等”)得知将一个 ASCII 或 Latin-1 的文件转换成 UCS-2 只需简单地在每个 ASCII 字节前插入 0x00。反之去处0x00。
5:而一个unicode格式的文本要转为utf-8格式的文本,那么根据下图所示:
U-00000000 - U-0000007F: 0xxxxxxx
U-00000080 - U-000007FF: 110xxxxx 10xxxxxx
U-00000800 - U-0000FFFF: 1110xxxx 10xxxxxx 10xxxxxx
U-00010000 - U-001FFFFF: 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
U-00200000 - U-03FFFFFF: 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
U-04000000 - U-7FFFFFFF: 1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
==================================================================
以上是对一些概念的阐述,
而下面这几个语句/表达式的解释:
0x80 //逻辑判断,字面意思:判断是否小于0x80,(即判断是否为一个ascii字符)
0xff //位运算 ,字面:将相应的位置“0”,(按照utf-8的格式设置“前缀”/“前导”)
js正则如何实现1到70个字符,并且首尾不得为空格
首尾不得为空 可以用jquery的$.trim()来清楚首尾的空字符
不用jquery 用正则的话 这样来写
var reg=/^[^\s].*{1,68}[^\s]$/g;
//上面这种可以实现前后不能有空 但不能严格的控制字符的长短 不能实现一位字符的判断 所以来换一种写法
var reg=/(?!^\s+)(?!\s+$).*{1,70}/g;
手机回答的 不好亲自测试 如果不能用 你再找我!
Discuz!论坛标题字数如何突破80字符的限制?
当一些用户发布帖子的时候 标题要是超过了80个字符超出的部分被剪切掉了,特别是一些用户发送一些英文或其他其语言的文章的时候标题说甚至会超过180个字符,又特别论坛编码是UTF-8格式,因为一个字占3个字节,所以标题最长也就26个汉字,很多用户想修改这个80个字符的限制。想去掉这个字数限制,要从下面五个部分来修改:一、数据库修改;二、修改JS验证字符数文件;三、修改模板中写死的字符限制数;四,修改函数验证文件;五,修改语言包文件。现以把标题字符限制80修改为120为例子,描述一下修改方法:一、数据库修改,修改数据库标题字段的长度为120字符:运行下面的sql语句:(注意修改你的表的前缀)ALTER TABLE `pre_forum_post` CHANGE `subject` `subject` VARCHAR(120) NOT NULL;ALTER TABLE `pre_forum_rsscache` CHANGE `subject` `subject` char(120) NOT NULL;ALTER TABLE `pre_forum_thread` CHANGE `subject` `subject` char(120) NOT NULL;。
输入n行字符(如英文单词)每行不超过80个字符,以回车结束每一行输出该字符串并统计每一行的单词数
VC环境运行,输入只能是英文单词或者空格:
#includestdio.h
#includestring.h
void main()
{
int number=0,i;
char s[300];
gets(s);
puts(s);
for(i=0;istrlen(s);i++)
{
if(s[i]==' ')
number++;
}
printf("%d\n",number+1);
}