社区
Java SE
帖子详情
有没有办法判断一个String当前的编码格式???
loveyousomuch
2005-04-28 06:26:56
如有一个String型变量,
能不能得到它目前的编码格式,然后在做相应的转换??
...全文
6306
28
打赏
收藏
有没有办法判断一个String当前的编码格式???
如有一个String型变量, 能不能得到它目前的编码格式,然后在做相应的转换??
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用AI写文章
28 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
bigc2000
2005-05-09
打赏
举报
回复
任意给定的一个串,无法判断它的编码格式,但是可以得到系统的默认编码格式。
好比加密机制,输入端,输出端,输出端无法知道输入端进行了何种加密,除非约定好了,
一个失业的程序员
2005-05-08
打赏
举报
回复
从你问题看,你没有明白java的编码方式原理,java的JVM的缺省编码方式由系统的“本地语言环境”设置确定,和操作系统的类型无关
在JAVA源文件-->JAVAC-->Class-->Java-->getBytes()-->new String()-->显示的过程中,每一步都有编码的转换过程,这个过程总是存在的,只是有的时候用默认的参数进行
JAVAC是以系统默认编码读入源文件,然后按UNICODE进行编码的。在JAVA运行的时候,JAVA也是采用UNICODE编码的,并且默认输入和输出的都是操作系统的默认编码,也就是说在new String(bytes[,encode])中,系统认为输入的是编码为encode的字节流,换句话说,如果按encode来翻译bytes才能得到正确的结果,这个结果最后要在JAVA中保存,它还是要从这个encode转换成Unicode,也就是说有bytes-->encode字符-->Unicode字符的转换;而在String.getBytes([encode])中,系统要做一个Unicode字符-->encode字符-->bytes的转换。
以下是取得系统缺省编码方式
public encoding {
public static void main(String[] args) {
Properties initProp = new Properties(System.getProperties());
System.out.println("file.encoding:" + initProp1.getPropert("file.encoding"));
System.out.println("file.encoding:" + initProp1.getPropert("user.language"));
}
}
总之,java 编码都是Unicode 因此, 我们只要知道当前系统缺省的编码方式,然后Unicode编码转换成当前系统缺省的编码方式
MARS.nEIL
2005-05-08
打赏
举报
回复
学习.
ses127127
2005-05-08
打赏
举报
回复
学习
yorkchen
2005-05-08
打赏
举报
回复
GX
loveyousomuch
2005-05-08
打赏
举报
回复
看来现在还没有一个好的方法来解决这个问题!
要顶一下
mingyang47
2005-05-07
打赏
举报
回复
不知道,也要顶一下。
WinFastNcr
2005-05-07
打赏
举报
回复
顶
xiangqianchong
2005-05-07
打赏
举报
回复
学习
DrDragon
2005-05-07
打赏
举报
回复
学习ing!
miukoo
2005-05-07
打赏
举报
回复
这个方法能把你输入的汉字,或者字母变成数字显示出来,不知道是不是你想要的结果!!!
import javax.swing.*;
public class Love
{
public static void main(String[] args)
{
String s=JOptionPane.showInputDialog("请输入字符串:");
int d;
d=s.length();
char ch[]=new char[d];
int n[]=new int[d];
for(int i=0;i<d;i++)
{
ch[i]=s.charAt(i);
n[i]=ch[i]-'0';
}
for(int w=0;w<d;w++)
{
System.out.print(n[w]);
}
}
}
midthinker
2005-05-07
打赏
举报
回复
工程中是否有配置文件可以查询啊?
@.@||~
hainang1234
2005-05-07
打赏
举报
回复
怎么就没有人讨论了吗?
还没搞定呀!
阿土伯伯
2005-04-29
打赏
举报
回复
如果你不指定编码方式的话,String的编码方式是从操作系统的file.encoding这个环境变量中获取编码方式的。
大数据菜
2005-04-29
打赏
举报
回复
Thinking……
WinFastNcr
2005-04-29
打赏
举报
回复
顶
loveyousomuch
2005-04-29
打赏
举报
回复
现在的人怎么都不热心了,要回答也详细一点嘛!
littlecpu
2005-04-28
打赏
举报
回复
我觉得很奇怪啊,String 都是UNICODE的,你这是不知那一些出了问题,得到了一些垃圾内容.其实从byte流到char流,一般都有地方设置charset的.就算没有,你也可以用io里的InputStreamRead/Writer给iostream给加一个chartset.
例如jsp来说吧,就有request.setCharxxx方法的.
jihanzhong
2005-04-28
打赏
举报
回复
没什么意外下!比如你另外指定了编码格式
jihanzhong
2005-04-28
打赏
举报
回复
跟文件的编码是一样的!
加载更多回复(8)
sourceinsight使用技巧
1 sourceinsight screen font 的默认字体是Verdana的,它是一直变宽字体。在Document style中可以将字体改为定宽的Courier 2 勾掉indent Open Brace和Indent Close Brace
SourceInsight一些使用技巧
问题描述:对于source insight的使用还有些技巧需要注意的,于是网上搜索了下常用技巧,转载下来做下记录,方便查询。 1、背景色选择 要改变背景色Options->preference->windows background->color设置背景色 2、解决字符等宽对齐问题 SIS默认字体是VERDANA,很漂亮。这网页上应该也是用的VERDANA字体。但由于美观的缘故,V
SourceInsight使用技巧
1、缩进与tab (1)Options菜单àPreferencesàTyping卡,勾掉下面两项∶ Typing tab indents line,regardless of selection,空行按tab无法前进 Typing tab replaces current selection,选定部分内容、再按tab时会清除所选 (2)Options菜单àDocument
sourceInsight使用技巧
1.使用定宽字体 sourceinsight screen font 的默认字体是Verdana的,它是一直变宽字体。在Document style中可以将字体改为定宽的Courier。 2. SMART TAB的用法. 解决自动缩进. 新开
一个
PROJECT后,点Options->Document Options,弹出对话框后先在左上角选好要用的Document Type,主要就是
sourceinsight常见使用技巧汇总
si的主要配置都在Options->Perferences菜单里, 1、General Project File Synchronization->Remove missing file from project选上可以避免因文件找不到而弹出错误对话框。 把Misc->Use stricter confirmation dialog选项去掉可以使确认时不输入"yes"。 2
Java SE
62,620
社区成员
307,251
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章