关于无秘的问题

后使用快捷导航没有帐号?
查看: 318|回复: 9
帅到没朋友
新人欢迎积分0 阅读权限50积分1566精华0UID2431673帖子金钱2613 威望0
Lv.5, 积分 1566, 距离下一级还需 934 积分
UID2431673帖子威望0 多玩草10 草元宝
各位大神,我有几个疑问
1.我现在已经流浪开到了75% 也已经开始了刷秘武 但是有一个问题:是说每个秘武必须要武将亲自上场拿么?
如果我让自定义人物 每次打秘武的时候 换不同的武器上场可行吧?我刷了几个自定义人物里的秘武 但是为什么不在对应的武将的武器中显示呢?
2.秘宝是在流浪模式里全能刷出来么?还是要回到演义模式里 跟着流程刷呢?
以上两个问题 不知道大家看没看懂!
希望达人们解答一下!
战国无双4我要白金啊!!!!!!跪谢!
“你没有欠什么,我从来不会逼朋友去做不想做的事,我有我自己的原则,我不想一辈子被人踩在脚下,你以为我是臭要饭的,我等了三年,就是要等一个机会,我要争一口气,不是想证明我了不起;我是要告诉人家,我失去的东西一定要拿回来!”
新人欢迎积分1 阅读权限70积分7374精华0UID帖子金钱10029 威望0
港服ID:xkwsweet
Lv.7, 积分 7374, 距离下一级还需 2626 积分
UID帖子威望0 多玩草110 草元宝
发表自UC浏览器
1.原创武将换武器没用,还得用无双武将弄一次
2.全能得到,具体可参照我之前的白金帖子
&原创武将换武器是有效的,我啊国,义元和五又卫门都是用原创拿的&
新人欢迎积分0 阅读权限70积分6264精华0UID1883254帖子金钱30798 威望0
Lv.7, 积分 6264, 距离下一级还需 3736 积分
UID1883254帖子威望0 多玩草40 草元宝
刷秘宝嘛满足条件剩下看脸,刷密武肯定要武器本人了,原创才可以拿着5把来回换着拿
新人欢迎积分0 阅读权限60积分3772精华0UID2391103帖子金钱17099 威望1
Lv.6, 积分 3772, 距离下一级还需 1228 积分
UID2391103帖子威望1 多玩草10 草元宝
流浪模式可刷齐全部秘武,自定武将换上需要刷的武器就可以,当然需要对应的无双武将友好度4格才能使用该武将武器。我就是刷齐全秘武才去打的无双演武。流浪模式用了30小时。目前已白,共用了97小时,有啥问题可以发消息。
&5格才有武器,4格是可用该人物为搭档&
新人欢迎积分0 阅读权限60积分3772精华0UID2391103帖子金钱17099 威望1
Lv.6, 积分 3772, 距离下一级还需 1228 积分
UID2391103帖子威望1 多玩草10 草元宝
又连发了不好意思
新人欢迎积分0 阅读权限60积分3401精华0UID帖子金钱6598 威望0
Lv.6, 积分 3401, 距离下一级还需 1599 积分
UID帖子威望0 多玩草10 草元宝
不知何謂秘宝的路过
新人欢迎积分0 阅读权限60积分3162精华0UID3012543帖子金钱3940 威望0
Lv.6, 积分 3162, 距离下一级还需 1838 积分
UID3012543帖子威望0 多玩草10 草元宝
原创武将换武器是有效的,我阿国,义元和五又卫门都是用原创拿的,不过好像得用无双人物完成任务,比如你用原创换阿国的武器,另外一个选你想拿的无双人物,进入战场后换无双人物来完成任务就可以了,一次能拿两把,一个是原创的,一个无双人物的(得两任务都成功,失败一个另一个谁达成的谁就有武器)
新人欢迎积分2 阅读权限50积分1111精华0UID帖子金钱8314 威望0
Lv.5, 积分 1111, 距离下一级还需 1389 积分
UID帖子威望0 多玩草0 草元宝
梦lkusasi 发表于
原创武将换武器是有效的,我阿国,义元和五又卫门都是用原创拿的,不过好像得用无双人物完成任务,比如你 ...
不用无双人物完成也行的
新人欢迎积分0 阅读权限60积分3162精华0UID3012543帖子金钱3940 威望0
Lv.6, 积分 3162, 距离下一级还需 1838 积分
UID3012543帖子威望0 多玩草10 草元宝
雪织的旋律 发表于
不用无双人物完成也行的
我是无双人物练级时顺便拿的,需不需要我不清楚,不过每次都能拿两把就是了
新人欢迎积分0 阅读权限80积分11550精华0UID2869004帖子金钱31959 威望0
Lv.8, 积分 11550, 距离下一级还需 8450 积分
UID2869004帖子威望0 多玩草95 草元宝
便型经肛112 发表于
各位大神,我有几个疑问
1.我现在已经流浪开到了75% 也已经开始了刷秘武 但是有一个问题:是说每个秘武必 ...
自捏只要和某武将友好度大于4,能拿该武将的武器了,就可以用自捏出战拿该武将的秘武。秘武的获得看的是出战武将的动作模组,和是否是自捏无关。
家宝剧情和流浪都可以刷,模拟我没试过,应该也行。达成指定条件即有几率获得。
马年新春勋章
手机APP马年迎春,马上有钱!
手机论坛勋章
APP发帖双倍积分,登陆即送勋章!
需要金钱:1100
Powered by
手机盒子客户端点击或扫描下载& 关羽秘武的问题,请教大神
查看: 2096|回复: 8
UID2798311主题阅读权限20帖子精华0积分31金钱538 荣誉0 人气0 在线时间175 小时评议0
Lv.2游侠会员, 积分 31, 距离下一级还需 169 积分
帖子精华0积分31金钱538 荣誉0 人气0 评议0
本帖最后由 Confucianism 于
10:55 编辑
我用张飞去打关羽的两个秘武,看攻略上是虎牢关之战和吕布讨伐战,难度选的困难,14分钟击败华雄和吕布,第二秘武9分钟之内击败张辽和吕绮玲,条件都达成,为什么就是不出现贵重物品呢!!???有哪里不对的地方吗??
UID4044066主题阅读权限100帖子精华0积分1580金钱21963 荣誉5 人气112 在线时间4508 小时评议11
帖子精华0积分1580金钱21963 荣誉5 人气112 评议11
故事模式……
UID2798311主题阅读权限20帖子精华0积分31金钱538 荣誉0 人气0 在线时间175 小时评议0
Lv.2游侠会员, 积分 31, 距离下一级还需 169 积分
帖子精华0积分31金钱538 荣誉0 人气0 评议0
故事模式和自由模式我都玩了 !还是没有,啥情况?
UID5334523主题阅读权限20帖子精华0积分5金钱305 荣誉0 人气0 在线时间210 小时评议0
Lv.2游侠会员, 积分 5, 距离下一级还需 195 积分
帖子精华0积分5金钱305 荣誉0 人气0 评议0
只能用关羽去刷……
UID646624主题阅读权限20帖子精华0积分82金钱888 荣誉0 人气0 在线时间417 小时评议0
Lv.2游侠会员, 积分 82, 距离下一级还需 118 积分
帖子精华0积分82金钱888 荣誉0 人气0 评议0
必须用本人
游侠资深版主天地会主
UID6205538主题阅读权限100帖子精华0积分12427金钱91827 荣誉49 人气508 在线时间12275 小时评议7
帖子精华0积分12427金钱91827 荣誉49 人气508 评议7
本人刷才能出
UID2403065主题阅读权限20帖子精华0积分113金钱1180 荣誉0 人气2 在线时间286 小时评议0
Lv.2游侠会员, 积分 113, 距离下一级还需 87 积分
帖子精华0积分113金钱1180 荣誉0 人气2 评议0
对应武器+对应武将=贵重品发现
GTA☆MafiaメGodfather Crysis☆至尊無上の沙漠之鷹★★
UID1695689主题阅读权限90帖子精华0积分30991金钱909 荣誉618 人气330 在线时间7343 小时评议0
帖子精华0积分30991金钱909 荣誉618 人气330 评议0
秘武必須對應的武將去刷才會出現,你用張飛去拿關二爺的秘武怎麼可能會現出現呢?
UID654945主题阅读权限20帖子精华0积分106金钱1098 荣誉0 人气0 在线时间227 小时评议0
Lv.2游侠会员, 积分 106, 距离下一级还需 94 积分
帖子精华0积分106金钱1098 荣誉0 人气0 评议0
本座没法“代刷”,差评!
话说一开始我想用吕布“代刷”...
后来发现做一把吕布的武器,然后不管谁都双方天戟去刷秘武比较好。
2013年度杰出版主勋章
2013年度杰出版主勋章
版主评议达到4,勤于处理版务
任职满12个月
资深版主勋章
任职满24个月
白金会员勋章
用户积分达到6000
发帖数达到10000
2013年度优秀版主勋章
2013年度优秀版主勋章
荣誉达到150
高级荣誉勋章
荣誉达到500
Powered byDES解密出现-“不正确的数据”和“要解密的数据长度无效”-有关问题,高手来解决!_Eclipse3.6 + Tomcat7 + Jdk1.6配备_JAVA之编码/解码-资料输入输出流__脚本百事通
稍等,加载中……
^_^请注意,有可能下面的2篇文章才是您想要的内容:
DES解密出现-“不正确的数据”和“要解密的数据长度无效”-有关问题,高手来解决!
Eclipse3.6 + Tomcat7 + Jdk1.6配备
JAVA之编码/解码-资料输入输出流
DES解密出现-“不正确的数据”和“要解密的数据长度无效”-有关问题,高手来解决!
DES解密出现-“不正确的数据”和“要解密的数据长度无效”-问题,高手来解决!在线等!源码如下:
解密给定的字符串
&/summary&
name= 'str '& 要解密的字符 &/param&
&/returns&
DecryptString(string
ivb=Encoding.ASCII.GetBytes(this.iv);
keyb=Encoding.ASCII.GetBytes(this.EncryptKey);
toDecrypt=this.EncodingMode.GetBytes(str);
deCrypted=new
byte[toDecrypt.Length];
ICryptoTransform
deCryptor=des.CreateDecryptor(keyb,ivb);
MemoryStream
msDecrypt=new
MemoryStream(toDecrypt);
CryptoStream
csDecrypt=new
CryptoStream(msDecrypt,deCryptor,CryptoStreamMode.Read);
csDecrypt.Read(deCrypted,0,deCrypted.Length);
catch(Exception
ApplicationException(err.Message);
msDecrypt.Close();
csDecrypt.Close();
this.EncodingMode.GetString(deCrypted);
为什么会出现这个问题?------解决方案--------------------using S
using System.Collections.G
using System.D
using System.D
using System.T
using System.Windows.F
using System.Security.C
using System.IO;
namespace DES加密解密
public partial class Form1 : Form
public Form1()
InitializeComponent();
private void button1_Click(object sender, EventArgs e)
this.textBox2.Text = DESEncrypt( " " + this.textBox1.Text.ToString().Trim() +
public string DESEncrypt(string pToEncrypt)
DESCryptoServiceProvider des = new DESCryptoServiceProvider();
byte[] inputByteArray = Encoding.Default.GetBytes(pToEncrypt);
//密匙和偏移量
byte[] kkk = new byte[] { 0x16, 0x09, 0x14, 0x15, 0x07, 0x01, 0x05, 0x08 };
byte[] iivv = new byte[] { 0x08, 0x05, 0x01, 0x07, 0x15, 0x14, 0x09, 0x16 };
MemoryStream ms = new MemoryStream();
CryptoStream cs = new CryptoStream(ms, des.CreateEncryptor(), CryptoStreamMode.Write);
cs.Write(inputByteArray, 0, inputByteArray.Length);
cs.FlushFinalBlock();
StringBuilder ret = new StringBuilder();
foreach (byte b in ms.ToArray())
ret.AppendFormat( "{0:X2} ", b);
ret.ToString();
return ret.ToString();
private void button2_Click(object sender, EventArgs e)
this.textBox3.Text = DESDecrypt( " " + this.textBox2.Text.ToString().Trim() +
public string DESDecrypt(string pToDecrypt)
DESCryptoServiceProvider des = new DESCryptoServiceProvider();
byte[] inputByteArray = new byte[pToDecrypt.Length / 2];
for (int x = 0; x
& pToDecrypt.Length / 2; x++)
int i = (Convert.ToInt32(pToDecrypt.Substring(x * 2, 2), 16));
inputByteArray[x] = (byte)i;
byte[] kkk = new byte[] { 0x16, 0x09, 0x14, 0x15, 0x07, 0x01, 0x05, 0x08 };
byte[] iivv = new byte[] { 0x08, 0x05, 0x01, 0x07, 0x15, 0x14, 0x09, 0x16 };
MemoryStream ms = new MemoryStream();
CryptoStream cs = new CryptoStream(ms, des.CreateDecryptor(), CryptoStreamMode.Write);
cs.Write(inputByteArray, 0, inputByteArray.Length);
cs.FlushFinalBlock();
StringBuilder ret = new StringBuilder();
return System.Text.Encoding.Default.GetString(ms.ToArray());
Eclipse3.6 + Tomcat7 + Jdk1.6配备
Eclipse3.6 + Tomcat7 + Jdk1.6配置
Eclipse3.6 + Tomcat7 + Jdk1.6配置
管理Eclipse上的tomcat的插件
Sysdeo Eclipse Tomcat Launcher plugin
/tomcatPlugin.html
-----正文开始----
一直以来都是很容易的将eclipse与tomcat结合使用,但是最近想试用tomcat7的时候,却突然发现eclipse将web服务部署到tomcat7.0中并不是像以前那么简单。非常郁闷的是,昨天晚上在各大技术论坛中苦苦找寻了几个小时都没有点滴的进展。但是也很幸运,在睡意很深的情况下却发现了一篇很好的帮助文章。
这个站点是从一个论坛(好像是csdn,但是说实话没记那么清楚 )的回帖中发现的, 这是一个国外的提供 j2ee培训的个性化站点,/Apache-Tomcat-Tutorial/tomcat-7-with-eclipse.html。或许是tomcat7.0配置到eclipse并那么那么顺利的成功,于是对这次的尝试印象非常的深刻,决定针对eclipse与tomcat7.0结合使用的方法写一篇译文,希望粗品能够为那些和我一样有困扰的人提供一些帮助。
如果可以的话,大家可以直接按照站点提示的一步步的操作,作者对整个过程的描述非常的清晰,毕竟说白了也不是很复杂的事情。但是,为了防止站点更新,或者有些人不愿意看英文站点,这里进行简单的介绍一下。
正如文章标题“ Tutorial: Installing Tomcat 7 and Using it with Eclipse“所写的,安装tomcat7并与eclipse一起使用。首先要说明的是,tomcat7使用的是servlet3.0版本,对jdk的要求是至少是1.6及以上版本的。如果你的jdk版本不够,可以到oracle官网下载最新版本的或者稍早点版本的jdk支持tomcat7。
本文只对第一步进行简单的介绍,其他步骤也很值得阅读,至少比国内搜索引擎所选出的结果水平要高。
下载java6或者更高版本
下载tomcat7.0.8到本地并安装,然后将安装目录的”/Tomcat 7.0/conf“下的context.xml、server.xml和web.xml三个文件复制到安装目录的”conf“文件下 。
到eclipse官网下载 "Eclipse IDE for Java EE Developers",本人下载的是为了适用tomcat7的Eclipse 3.6 (Helios)版本,安装后进入工作空间。
在eclipse的servers视图中配置tomcat7,通知eclipse所使用的tomcat7的安装路径。
在servers视图中启动tomcat,并访问tomcat默认首页http://localhost:8080/,如果8080端口被占用,可以将其设置为未被使用的端口号,重新访问。这时候会出现一个404错误,但是至少可以确定tomcat7配置正确。需要做的就是将安装目录的”webapp“下的ROOT文件夹复制到eclipse的工作空间的 “/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps“ 目录下进行覆盖 。
未修改端口号可以访问 http://localhost:8080/,如果修改了端口号就访问想要的端口。此时tomcat欢迎界面就会出现。
接着就可以import一些简单的sample例子了,并进行访问。也可以自己创建动态的web项目,并能够体验servlet3.0、jsp2.2及el2.2的特性了。
完成这些,那就恭喜你了,你的麻烦也就自然的解决了。如果没有解决你的难题,希望你能够找到解决办法后能够同大家分享
JAVA之编码/解码-资料输入输出流
JAVA之编码/解码-文件输入输出流
问题一:在java中读取文件时应该采用什么编码?
Java读取文件的方式总体可以分为两类:按字节读取和按字符读取。按字节读取就是采用InputStream.read()方法来读取字节,然后保存到一个byte[]数组中,最后经常用new String(byte[]);把字节数组转换成String。在最后一步隐藏了一个编码的细节,new String(byte[]);会使用操作系统默认的字符集来解码字节数组,中文操作系统就是GBK。而我们从输入流里读取的字节很可能就不是GBK编码的,因为从输入流里读取的字节编码取决于被读取的文件自身的编码。举个例子:我们在D:盘新建一个名为demo.txt的文件,写入”我们。”,并保存。此时demo.txt编码是ANSI,中文操作系统下就是GBK。此时我们用输入字节流读取该文件所得到的字节就是使用GBK方式编码的字节。那么我们最终new String(byte[]);时采用平台默认的GBK来编码成String也是没有问题的(字节编码和默认解码一致)。试想一下,如果在保存demo.txt文件时,我们选择UTF-8编码,那么该文件的编码就不在是ANSI了,而变成了UTF-8。仍然采用输入字节流来读取,那么此时读取的字节和上一次就不一样了,这次的字节是UTF-8编码的字节。两次的字节显然不一样,一个很明显的区别就是:GBK每个汉字两个字节,而UTF-8每个汉字三个字节。如何我们最后还使用new String(byte[]);来构造String对象,则会出现乱码,原因很简单,因为构造时采用的默认解码GBK,而我们的字节是UTF-8字节。正确的办法就是使用new String(byte[],”UTF-8”);来构造String对象。此时我们的字节编码和构造使用的解码是一致的,不会出现乱码问题了。
说完字节输入流,再来说说字节输出流。
我们知道如果采用字节输出流把字节输出到某个文件,我们是无法指定生成文件的编码的(假设文件以前不存在),那么生成的文件是什么编码的呢?经过测试发现,其实这取决于写入的字节编码格式。比如以下代码:
OutputStream out = new FileOutputStream("d:\\demo.txt");
out.write("我们".getBytes());
getBytes()会采用操作系统默认的字符集来编码字节,这里就是GBK,所以我们写入demo.txt文件的是GBK编码的字节。那么这个文件的编码就是GBK。如果稍微修改一下程序:out.write("我们".getBytes(“UTF-8”));此时我们写入的字节就是UTF-8的,那么demo.txt文件编码就是UTF-8。这里还有一点,如果把”我们”换成123或abc之类的ascii码字符,那么无论是采用getBytes()或者getBytes(“UTF-8”)那么生成的文件都将是GBK编码的。
这里可以总结一下,InputStream中的字节编码取决文件本身的编码,而OutputStream生成文件的编码取决于字节的编码。
下面说说采用字符输入流来读取文件。
首先,我们需要理解一下字符流。其实字符流可以看做是一种包装流,它的底层还是采用字节流来读取字节,然后它使用指定的编码方式将读取字节解码为字符。说起字符流,不得不提的就是InputStreamReader。以下是java api对它的说明: InputStreamReader是字节流通向字符流的桥梁:它使用指定的 charset 读取字节并将其解码为字符。它使用的字符集可以由名称指定或显式给定,否则可能接受平台默认的字符集。说到这里其实很明白了,InputStreamReader在底层还是采用字节流来读取字节,读取字节后它需要一个编码格式来解码读取的字节,如果我们在构造InputStreamReader没有传入编码方式,那么会采用操作系统默认的GBK来解码读取的字节。还用上面demo.txt的例子,假设demo.txt编码方式为GBK,我们使用如下代码来读取文件:
InputStreamReader
in = new InputStreamReader(new FileInputStream(“demo.txt”));
那么我们读取不会产生乱码,因为文件采用GBK编码,所以读出的字节也是GBK编码的,而InputStreamReader默认采用解码也是GBK。如果把demo.txt编码方式换成UTF-8,那么我们采用这种方式读取就会产生乱码。这是因为字节编码(UTF-8)和我们的解码编码(GBK)造成的。解决办法如下:
InputStreamReader
in = new InputStreamReader(new FileInputStream(“demo.txt”),”UTF-8”);
给InputStreamReader指定解码编码,这样二者统一就不会出现乱码了。
下面说说字符输出流。
字符输出流的原理和字符输入流的原理一样,也可以看做是包装流,其底层还是采用字节输出流来写文件。只是字符输出流根据指定的编码将字符转换为字节的。字符输出流的主要类是:OutputStreamWriter。Java api解释如下:OutputStreamWriter 是字符流通向字节流的桥梁:使用指定的 charset 将要向其写入的字符编码为字节。它使用的字符集可以由名称指定或显式给定,否则可能接受平台默认的字符集。说的很明白了,它需要一个编码将写入的字符转换为字节,如果没有指定则采用GBK编码,那么输出的字节都将是GBK编码,生成的文件也是GBK编码的。如果采用以下方式构造OutputStreamWriter:
OutputStreamWriter out = new OutputStreamWriter(new FileOutputStream(“dd.txt”),”UTF-8”);
那么写入的字符将被编码为UTF-8的字节,生成的文件也将是UTF-8格式的。
问题二:既然读文件要使用和文件编码一致的编码,那么javac编译文件也需要读取文件,它使用什么编码呢?
这个问题从来就没想过,也从没当做是什么问题。正是因为问题一而引发的思考,其实这里还是有东西可以挖掘的。下面分三种情况来探讨,这三种情况也是我们常用的编译java源文件的方法。
1.javac在控制台编译java类文件。
通常我们手动建立一个java文件Demo.java,并保存。此时Demo.java文件的编码为ANSI,中文操作系统下就是GBK.然后使用javac命令来编译该源文件。”javac Demo.java”。Javac也需要读取java文件,那么javac是使用什么编码来解码我们读取的字节呢?其实javac采用了操作系统默认的GBK编码解码我们读取的字节,这个编码正好也是Demo.java文件的编码,二者一致,所以不会出现乱码情况。让我们来做点手脚,在保存Demo.java文件时,我们选择UTF-8保存。此时Demo.java文件编码就是UTF-8了。我们再使用”javac Demo.java”来编译,如果Demo.java里含有中文字符,此时控制台会出现警告信息,也出现了乱码。究其原因,就是因为javac采用了GBK编码解码我们读取的字节。因为我们的字节是UTF-8编码的,所以会出现乱码。如果不信的话你可以自己试试。那么解决办法呢?解决办法就是使用javac的encoding参数来制定我们的解码编码。如下:javac -encoding UTF-8 Demo.java。这里我们指定了使用UTF-8来解码读取的字节,由于这个编码和Demo.java文件编码一致,所以不会出现乱码情况了。
2.Eclipse中编译java文件。
我习惯把Eclipse的编码设置成UTF-8。那么每个项目中的java源文件的编码就是UTF-8。这样编译也从没有问题,也没有出现过乱码。正是因为这样才掩盖了使用javac可能出现的乱码。那么Eclipse是如何正确编译文件编码为UTF-8的java源文件的呢?唯一的解释就是Eclipse自动识别了我们java源文件的文件编码,然后采取了正确的encoding参数来编译我们的java源文件。功劳都归功于IDE的强大了。
3.使用Ant来编译java文件。
Ant也是我常用的编译java文件的工具。首先,必须知道Ant在后台其实也是采用javac来编译java源文件的,那么可想而知,1会出现的问题在Ant中也会存在。如果我们使用Ant来编译UTF-8编码的java源文件,并且不指定如何编码,那么也会出现乱码的情况。所以Ant的编译命令&javac&有一个属性” encoding”允许我们指定编码,如果我们要编译源文件编码为UTF-8的java文件,那么我们的命令应该如下:
&javac destdir="${classes}" target="1.4" source="1.4" deprecation="off" debug="on" debuglevel="lines,vars,source" optimize="off" encoding="UTF-8"&
指定了编码也就相当于”javac –encoding”了,所以不会出现乱码了。
问题三:tomcat中编译jsp的情况。
这个话题也是由问题二引出的。既然javac编译java源文件需要采用正确的编码,那么tomcat编译jsp时也要读取文件,此时tomcat采用什么编码来读取文件?会出现乱码情况吗?下面我们来分析。
我们通常会在jsp开头写上如下代码:
&%@ page language="java" contentType="text/ charset=utf-8" pageEncoding="utf-8"%&
我常常不写pageEncoding这个属于,也不明白它的作用,但是不写也没出现过乱码情况。其实这个属性就是告诉tomcat采用什么编码来读取jsp文件的。它应该和jsp文件本身的编码一致。比如我们新建个jsp文件,设置文件编码为GBK,那么此时我们的pageEncoding应该设置为GBK,这样我们写入文件的字符就是GBK编码的,tomcat读取文件时采用也是GBK编码,所以能保证正确的解码读取的字节。不会出现乱码。如果把pageEncoding设置为UTF-8,那么读取jsp文件过程中转码就出现了乱码。上面说我常常不写pageEncoding这个属性,但是也没出现过乱码,这是怎么回事呢?那是因为如果没有pageEncoding属性,tomcat会采用contentType中charset编码来读取jsp文件,我的jsp文件编码通常设置为UTF-8,contentType的charset也设置为UTF-8,这样tomcat使用UTF-8编码来解码读取的jsp文件,二者编码一致也不会出现乱码。这只是contentType中charset的一个作用,它还有两个作用,后面再说。可能有人会问:如果我既不设置pageEncoding属性,也不设置contentType的charset属性,那么tomcat会采取什么编码来解码读取的jsp文件呢?答案是iso-8859-1,这是tomcat读取文件采用的默认编码,如果用这种编码来读取文件显然会出现乱码。
问题四:输出。
问题二和问题三分析的过程其实就是从源文件àclass文件过程中的转码情况。最终的class文件都是以unicode编码的,我们前面所做的工作就是把各种不同的编码转换为unicode编码,比如从GBK转换为unicode,从UTF-8转换为unicode。因为只有采用正确的编码来转码才能保证不出现乱码。Jvm在运行时其内部都是采用unicode编码的,其实在输出时,又会做一次编码的转换。让我们分两种情况来讨论。
1.java中采用Sysout.out.println输出。
比如:Sysout.out.println(“我们”)。经过正确的解码后”我们”是unicode保存在内存中的,但是在向标准输出(控制台)输出时,jvm又做了一次转码,它会采用操作系统默认编码(中文操作系统是GBK),将内存中的unicode编码转换为GBK编码,然后输出到控制台。因为我们操作系统是中文系统,所以往终端显示设备上打印字符时使用的也是GBK编码。因为终端的编码无法手动改变,所以这个过程对我们来说是透明的,只要编译时能正确转码,最终的输出都将是正确的,不会出现乱码。在Eclipse中可以设置控制台的字符编码,具体位置在Run Configuration对话框的Common标签里,我们可以试着设置为<span style="font-size: 10 color: #464646; font-
如果您想提高自己的技术水平,欢迎加入本站官方1号QQ群:&&,&&2号QQ群:,在群里结识技术精英和交流技术^_^
本站联系邮箱:

我要回帖

更多关于 三国无双7秘武 的文章

 

随机推荐