H(X)/K*100%。費(fèi)諾編碼屬于統(tǒng)計(jì)匹配編碼,一般其編碼效率計(jì)算公式是H(X)/K*100%。它編碼后的費(fèi)諾碼要比香農(nóng)碼的平均碼長(zhǎng)小,消息傳輸速率達(dá),編碼效率高,但它屬于概率匹配編碼它不是最佳的編碼方法。
光明ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場(chǎng)景,ssl證書未來市場(chǎng)廣闊!成為創(chuàng)新互聯(lián)的ssl證書銷售渠道,可以享受市場(chǎng)價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:18982081108(備注:SSL證書合作)期待與您的合作!
//我寫了一個(gè)程序,你把文字復(fù)制到文本框中點(diǎn)轉(zhuǎn)碼按鈕,就可以了
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JTextArea;
public class Class1 extends JFrame {
private final class AT implements ActionListener {
public void actionPerformed(ActionEvent e) {
jta.setText(fixString(jta.getText()));
}
}
public static void main(String[] args) {
JFrame jf = new Class1();
}
JTextArea jta = new JTextArea();
public Class1() {
setSize(400, 400);
setDefaultCloseOperation(EXIT_ON_CLOSE);
JButton jb = new JButton("轉(zhuǎn)碼");
jb.addActionListener(new AT());
add(jta);
add("North", jb);
setVisible(true);
}
String fixString(String s) {
while (true) {
int index = s.indexOf("\\u");
if (index != -1) {
String s1 = s.substring(index, index + 6);
if (s1.matches("\\\\u[0-9A-F]{4}")) {
char c = (char) Integer.parseInt(s1.replace("\\u", ""), 16);
s = s.substring(0, index) + c + s.substring(index + 6);
}
} else {
break;
}
}
return s;
}
}
編碼就是對(duì)已有的數(shù)據(jù)進(jìn)行安全重編譯,比如說對(duì)于一個(gè)String字符串應(yīng)用MD5加密 就會(huì)出現(xiàn)這種情況,比如字符串123456應(yīng)用MD5加密編碼就會(huì)變成gdyb21LQTcIANtvYMT7QVQ== 還有時(shí)候是為了程序前端和后端保持一致的對(duì)字符串的處理方式,因?yàn)橥粋€(gè)字符串,一旦前、后端處理編碼不一致就會(huì)出現(xiàn)亂碼,就會(huì)把漢子變成亂碼輸出。像你想把手機(jī)號(hào)編碼成這種亂碼 ,最好就是應(yīng)用MD5加密
java課程設(shè)計(jì)例子
Java如何獲取文件編碼格式
1:簡(jiǎn)單判斷是UTF-8或不是UTF-8,因?yàn)橐话愠薝TF-8之外就是GBK,所以就設(shè)置默認(rèn)為GBK。
按照給定的字符集存儲(chǔ)文件時(shí),在文件的最開頭的三個(gè)字節(jié)中就有可能存儲(chǔ)著編碼信息,所以,基本的原理就是只要讀出文件前三個(gè)字節(jié),判定這些字節(jié)的值,就可以得知其編碼的格式。其實(shí),如果項(xiàng)目運(yùn)行的平臺(tái)就是中文操作系統(tǒng),如果這些文本文件在項(xiàng)目?jī)?nèi)產(chǎn)生,即開發(fā)人員可以控制文本的編碼格式,只要判定兩種常見的編碼就可以了:GBK和UTF-8。由于中文Windows默認(rèn)的編碼是GBK,所以一般只要判定UTF-8編碼格式。
對(duì)于UTF-8編碼格式的文本文件,其前3個(gè)字節(jié)的值就是-17、-69、-65,所以,判定是否是UTF-8編碼格式的代碼片段如下:
File file = new File(path);
InputStream in= new java.io.FileInputStream(file);
byte[] b = new byte[3];
in.read(b);
in.close();
if (b[0] == -17 b[1] == -69 b[2] == -65)
System.out.println(file.getName() + ":編碼為UTF-8");
else
System.out.println(file.getName() + ":可能是GBK,也可能是其他編碼");
編碼長(zhǎng)度和方式不同。
UTF-16BE: 16 位 UCS 轉(zhuǎn)換格式,Big Endian(最低地址存放高位字節(jié),符合人們的閱讀習(xí)慣)字節(jié)順序
UTF-16LE: 16 位 UCS 轉(zhuǎn)換格式,Little-endian(最高地址存放高位字節(jié))字節(jié)順序
當(dāng)前標(biāo)題:java費(fèi)諾編碼代碼 費(fèi)諾編碼例題
網(wǎng)頁(yè)URL:http://www.rwnh.cn/article12/hicidc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供做網(wǎng)站、微信公眾號(hào)、靜態(tài)網(wǎng)站、營(yíng)銷型網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)公司、企業(yè)網(wǎng)站制作
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)