MyException - 我的异常网
当前位置:我的异常网» Java Web开发 » 关于字符编码与解码的几个小问题,希望大家一起讨论

关于字符编码与解码的几个小问题,希望大家一起讨论(4)

www.MyException.Cn  网友分享于:2015-08-27  浏览:29次

<!-- Note : To disable connection timeouts, set connectionTimeout value
to 0 -->
就是加上URIEncoding="GBK"就万事大吉了。 
这个办法是经过了他们公司所有技术强人所讨论出来的结果!
我相信三楼的朋友,也不会是外人吧!
------解决方案--------------------
#include <stdio.h>
#include <stdlib.h>
#define SIZE 4

struct Job_type

int no; //作业号
int tb; //作业开始时间(分)
int tr; //运行时间(分)
} x;
struct Job_type job[]={1,0,70,2,20,20,3,40,40,4,30,5}; //此数据适合FCFS
//Job_type job[]={1,0,70,2,0,20,3,0,40,4,0,5}; //此数据适合SJF
void load()
{ int i;
 //printf("\nEnter the Jobs' datas:\n");
//for(i=0;i<SIZE;i++)
//scanf("%d,%d,%d",&job[i].no,&job[i].tb,&job[i].tr);
  
printf("输入作业顺序:\n");
for(i=0;i<SIZE;i++)
printf("\t%d\t%d\t%d\n",job[i].no,job[i].tb,job[i].tr);
}
void fcfs()
{ int i,j,t=0,tw=0,tt=0;
for(i=0;i<SIZE-1;i++)
for(j=i+1;j<SIZE;j++)
if(job[i].tb>job[j].tb)
{x=job[i];
job[i]=job[j];
job[j]=x;
}
printf("FCFS调度结果:\n");
printf("开始时间 作业号 到达时间 运行时间 完成时间 等待时间 周转时间\n");

for(i=0;i<SIZE;i++)
{
printf(" %d",t);

t=t+job[i].tr;
tw=t-job[i].tb-job[i].tr; //作业等待时间
tt=t-job[i].tb; //周转时间
printf("\t%d\t%d\t%d\t%d\t%d\t%d\n",job[i].no,job[i].tb,job[i].tr,t,tw,tt);
}
}

void sjf() //短作业调度函数
{ int i,j,t=0,tw=0;
for(i=0;i<SIZE-1;i++)
for(j=i+1;j<SIZE;j++)
  
if(job[i].tr>job[j].tr)
{x=job[i];
job[i]=job[j];
job[j]=x;
}

printf("短作业优先调度结果:\n");
printf("开始时间 作业号 到达时间 运行时间 总时间 等待时间\n");

for(i=0;i<SIZE;i++)
{
printf(" %d",t);

t=t+job[i].tr;
tw=t-job[i].tb-job[i].tr; //作业等待时间

printf("\t%d\t%d\t%d\t%d\t%d\n",job[i].no,job[i].tb,job[i].tr,t,tw);
}
}
void main()
{
load();
fcfs();
sjf();
}

------解决方案--------------------
学习学习哦。
------解决方案--------------------
更正1楼的一个说法:

1、unicode,utf-8,gbk,gb2312等都是字符编码,是指怎么用字节来表示字符。

utf-8是unicode字符集外部交互的实现方式之一,unicode是字符集.
utf-8就是Unicode字符集转换格式:8 Bit Universal Character Set/Unicode Transformation Format).(或者8Bit放后面? 这个我不确定)
java采用的是modified UTF-8(与UTF-8不同)作为内部文本编码,I/O采用标准UTF-8,对象序列化支持非标准UTF-8.但是字符编码是统一的unicode字符集并且基于JVM和操作系统无关.
页面无论采用utf-8还是utf-16,都能和java直接交互无须转码,因为UTF-x虽然实现不同,但是都基于unicode字符集.

unicode,gbk,gb2312,big5,SJIS都是字符集,不过由于最全面的字符集unicode同其他字符集交互(目前unicode最常用的USC-2,也就是2字节编码)在控制符方面可能会引入严重的错误,比如"号,所以unicode字符集和其他字符集交互,需要通过utf-x的新编码方式来保证准确性.
也就是说某个数据以unicode字符集格式存在,但是为了和其他字符集交互,它实际的保存形式是以utf-x的方式存在的.

某猫呆过的公司都统一所有项目/数据库/页面文件等等为utf-8格式,来解决乱码问题,所以并不熟悉过滤和转码.

以上是某猫一直的理解,不过没有详细的考究过,所以不能保证都正确喵~~``

------解决方案--------------------
探讨
10楼realcbb的理解我有两点不同意:

3.除非你手动调用,否则不会进行URLEncoder.encode()或URLDecoder.decode(),具体过程还是见第一个问题。
提交表单传递参数时,是会进行URLEncoder编码的,将不安全的字符,如中文字符转换为"%xy"这种形式,将空格转换为"+"。

5.s = new String(s.getBytes("UTF-8"), "GBK");即可。
这是不行的,UTF-8和GBK之间的转换有点怪异。
如果是用s = new String(s.getBytes("ISO-8859-1…

------解决方案--------------------
探讨
8楼herowach的问题我也想问:

一、.java文件的字符集编码会对文件中的字符串产生影响吗?

文章评论

软件开发程序错误异常ExceptionCopyright © 2009-2015 MyException 版权所有