html中半角/全角空格

展开阅读全文

全角空格半角空格??????

09-22

我从数据库中抽出的字段中可能有全角的字符也有半角的字符,要求如果此字段没有和其定义的字段的长度相等,就在其字段的后补足全角空格,rnrn例如rnname varchar(50)rnrn1,name="a",rnrn就应该补足24个全角的空格和一个半角的空格rnrn2,name="ab",rnrn就应该补足24个全角的空格rnrn请各位大哥帮忙解决以下,我写了一个函数,但不能解决1,name="a"的情况,我是菜鸟,能否提供更好的解决办法,谢谢!rn(1)char * str_Io_P /* 为要转换的字符串 */rn(2)int li_Dem_Len /* 要求的长度,就是字段的长度 */rn(3)int li_SelFlag /* 是全角转换还是半角转换 */rnrnvoid Add_Space_ ( char * str_Io_P, int li_Dem_Len, int li_SelFlag )rnrn if ( (li_SelFlag == BATCH_SEL_1 || li_SelFlag == BATCH_SEL_2)rnrn && str_Io_P != NULL rn && ( li_Dem_Len >= 0 || li_Dem_Len <= MAX_BUFFER_LEN ))rn rn /* •Ï”’è‹` */rn int li_Count = 0 ;rn int li_True_Len = 0 ;rn char lc_str[MAX_BUFFER_LEN] ;rn char * w_Temp_P = NULL;rnrn /* €–Ú’l‰Šú‰»‚Ɛݒ菈— */rn memset( lc_str ,0x00, MAX_BUFFER_LEN ) ;rn w_Temp_P = str_Io_P + li_Dem_Len - 1 ;rn while ( *w_Temp_P == 0x20 )rn rn w_Temp_P--;rn rn strncpy( lc_str, str_Io_P, w_Temp_P- str_Io_P + 1) ;rn li_True_Len = strlen( lc_str );rn /* Œ‹‰ÊÝ’菈— */rn if ( li_True_Len != li_Dem_Len )rn rn /* FULL SPACE‚ðÝ’è‚·‚éB */rn if ( li_SelFlag == BATCH_SEL_1 )rn rn li_True_Len = (int)ceil((double)( li_Dem_Len - li_True_Len ) / 2);rnrn for ( li_Count = 0;li_Count < li_True_Len ; li_Count++ )rn rn strcat( lc_str, "@" ) ;rn rn rn /* Half SPACE‚ðÝ’è‚·‚éB */rn else if ( li_SelFlag == BATCH_SEL_2 ) rn rn li_True_Len = li_Dem_Len - li_True_Len ;rn for ( li_Count = 0; li_Count < li_True_Len ; li_Count++ )rn rn strcat( lc_str, " " ) ;rn rn rn sprintf( str_Io_P, "%s", lc_str ) ;rn rn rnrnrnrnrnrnrn 论坛

全角半角。。。

07-14

本来我还以为是数据库的字段类型给错了,老是插入数据失败,最后才知道是因为全角的问题,后来去网上找了全角转半角的函数,都不能用。。贴代码:rnfunction SBC_DBC($str,$args2) //半角和全角转换函数,第二个参数如果是0,则是半角到全角;如果是1,则是全角到半角rn $DBC = Array( rn '0' , '1' , '2' , '3' , '4' , rn '5' , '6' , '7' , '8' , '9' , rn 'A' , 'B' , 'C' , 'D' , 'E' , rn 'F' , 'G' , 'H' , 'I' , 'J' , rn 'K' , 'L' , 'M' , 'N' , 'O' , rn 'P' , 'Q' , 'R' , 'S' , 'T' , rn 'U' , 'V' , 'W' , 'X' , 'Y' , rn 'Z' , 'a' , 'b' , 'c' , 'd' , rn 'e' , 'f' , 'g' , 'h' , 'i' , rn 'j' , 'k' , 'l' , 'm' , 'n' , rn 'o' , 'p' , 'q' , 'r' , 's' , rn 't' , 'u' , 'v' , 'w' , 'x' , rn 'y' , 'z' , '-' , ' ' , ':' ,rn '.' , ',' , '/' , '%' , '#' ,rn '!' , '@' , '&' , '(' , ')' ,rn '<' , '>' , '"' , ''' , '?' ,rn '[' , ']' , '{' , '}' , '\' ,rn '|' , '+' , '=' , '_' , '^' ,rn '¥' , ' ̄' , '`'rn );rn $SBC = Array( //半角rn '0', '1', '2', '3', '4', rn '5', '6', '7', '8', '9', rn 'A', 'B', 'C', 'D', 'E', rn 'F', 'G', 'H', 'I', 'J', rn 'K', 'L', 'M', 'N', 'O', rn 'P', 'Q', 'R', 'S', 'T', rn 'U', 'V', 'W', 'X', 'Y', rn 'Z', 'a', 'b', 'c', 'd', rn 'e', 'f', 'g', 'h', 'i', rn 'j', 'k', 'l', 'm', 'n', rn 'o', 'p', 'q', 'r', 's', rn 't', 'u', 'v', 'w', 'x', rn 'y', 'z', '-', ' ', ':',rn '.', ',', '/', '%', '#',rn '!', '@', '&', '(', ')',rn '<', '>', '"', '\'','?',rn '[', ']', '', '', '\\',rn '|', '+', '=', '_', '^',rn '$', '~', '`'rn );rnif($args2==0) rn return str_replace($SBC,$DBC,$str); //半角到全角rnif($args2==1)rn return str_replace($DBC,$SBC,$str); //全角到半角rnelsern return false;rn rn不知道是怎么回事儿! 论坛

没有更多推荐了,返回首页