乱码大全(二)

字符编码及乱码 前言:从学习编程开始,字符编码和乱码问题一直伴随在我们左右。ASCII、GBK、UTF-8、Unicode、Latin 1、ANSI、ISO-8859-1等字符编码瞬时出现在我的脑海,就像电子围绕原子核一样不停转动。但是,扪心自问,我们真的了解它们吗?它们的底层原理是什么?同样是乱码,为什么有时候是“???”,有时候是“浣犲ソ”或者“ä½ å�½”。遇到乱码,我们可以轻易的在网上找到解决方案,但是下次遇到类似甚至同样的问题,还是要去网上找答案,因为我们不知道乱码的根本原因。本文将详细介绍常见编码的底层原理. 阅读详情
AI摘要

博客介绍了Xxencode编码算法,其与Uuencode基本相同但使用不同字符集,特殊字符更少,很多支持Uuencode的工具也支持它。还给出了Xxencode编码和解码的C语言描述,包括编码函数和解码函数的具体实现。

 

2. Xxencode

    提到Uuencode不可能不提Xxencode, Xxencode的编码算法和 Uuencode基本相同,但是使用的是不同的字符集。XxEncode编码使用的字符是:

“+-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz”与 Uuencode 相比,它的特殊字符更少。很多支持 Uuencode 编解码的工具都同时支持 Xxencode。

    这种编码的特征是:每一行开头用“h”标志。下面是Xxencode的一个例子:

begin 644 mogao.txt

h0EY760+U684qkh90uwjXhuWowwWfcPQB0UbLxxLTCapjNq3jcumkpxH4iwOu

hpxKycuVoNKliNLEu9mwmA16iAH2m9X6k9X2nAXcmAuCdgwbIgO4X1Ec760+U

h60+Ul8esrwXhjDutdBTrmh8XiaVoR5+u9mxhPqRVPmtWNKtoOLJi9atZR+o8

h0EY7FKpVOKloPndhPqRVPo+nBn2iPaJo1Ec760+U8Wce8Wce8Wce8Wce8Wce

h8Wce8Wce8Wce8Wce8Wce8Wce8Wce8Wce8Wce8Wce60+U60+U60+U60+U60+U

h1Ec760+U8W0nzQ59jATGtAemkvGqj98vhDXLruCggzr-mxTXj8D8ggCohfmm

hiw5onw6e1Ec760+U8Wce8Wce8Wce8Wce8Wce8Wce8Wce8Wce8Wce8Wce8Wce

A8Wce8Wce8Wce8Wce

+

end

 

    你可以把它单独存成一个文件:mogao.xxe,然后用Winzip打开,解压即得mogao.txt。

    Xxencode的编码算法和Uuencode基本相同,实现起来则更为简单,在此就不详述了。

    下面给出Xxencode编码和解码的C语言描述:

/*Xxencode编码*/

 void Xxe(unsigned char chasc[3],unsigned char chxxe[4])

/*

chasc:未编码的二进制代码

chxxe:编码过的Xxe代码

*/

{int i;

 static char set[]=

  "+-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";

 chxxe[0]=chasc[0]>>2;

 chxxe[1]=(chasc[0]<<4)&48|(chasc[1]>>4)&15;

 chxxe[2]=(chasc[1]<<2)&60|(chasc[2]>>6)&3;

 chxxe[3]=chasc[2]&63;

 for(i=0;i<4;i++) chxxe[i]=set[chxxe[i]];                  /*查表*/

}

/*需注意的是,Xxencode文件正文部分中每一行的第一个字母是:从源文件中实际                 读取的字符数的ASCII值取后六位后用set[]查表得到的。*/

/*Xxencode解码*/

unsigned char set(unsigned char ch)                           /*查表函数*/

{if(ch==43) ch=0;

 else if(ch==45) ch=1;

 else if(ch>=48&&ch<=57) ch-=46;

 else if(ch>=65&&ch<=90) ch-=53;

 else if(ch>=97&&ch<=122) ch-=59;

 return ch;

}

 

void unXxe(unsigned char chxxe[4],unsigned char chasc[3])

/*

chxxe:未解码的Xxe代码

chasc:解码过的二进制代码

*/

{int k=2 ,i;

 unsigned char t;

 t=NULL;

 *chxxe=set(*chxxe);

 for(i=0;i<3;i++)

 {*(chxxe+i+1)=set(*(chxxe+i+1));

  (chhex+i)=*(chxxe+i)<<k;

  k+=2;

  t=*(chxxe+i+1)>>8-k;

  *(chhex+i)|=t;

 }

}

遇到jsp中文显示乱码的解决方案 前言 正文 总结 阅读详情

相关推荐

乱码解决 乱码解决 乱码解决 乱码解决 乱码解决

乱码解决 乱码解决 乱码解决 乱码解决 乱码解决 乱码解决 乱码解决

jsp乱码解决大全(二)

我的乱码之路——JSP与MySQL交互的中文乱码解决方案及总结      首先实现了一个StringConvert bean(GBtoISO()和ISOtoGB()两个方法),解决了与MySQL数据库 交互的时候的部分中文乱码问题:在JSP程序中读取MySQL的中文内容,用这两个方法可以解决乱码问题 。     但是从JSP写入到MySQL的中文内容都成了乱码,并且再读出来的时候也显示为“??”,...

就算世界无童话 216

扫地机器人:从仿真到决策,一个完整SLAM导航系统的自研之路

本文详细记录了从零开始自研扫地机器人SLAM导航系统的全过程,涵盖ROS-Gazebo仿真系统搭建、地图预处理优化、全覆盖规划算法迭代等关键技术。通过三次算法升级,最终实现92%的清洁效率,并分享DWA调参、状态机设计等实战经验,为开发者提供从仿真到落地的完整解决方案。

weixin_29053695的博客 352

jsp乱码解决大全

jsp中文显示乱码解决方案2006-12-27 22:56一、JSP页面显示乱码二、表单提交中文时出现乱码三、数据库连接大家在JSP的开发过程中,经常出现中文乱码的问题,可能一至困扰着您,我现在把我在JSP开发中遇到的中文乱码的问题及解决办法写出来供大家参考。一、JSP页面显示乱码下面的显示页面(display.jsp)就出现乱码:JSP的中文处理out.print("

kt400_hhx的专栏 4462

Matlab生成dsp程序——环境搭建(c2000系列[F28335、F2837x]都适用)

一、环境配置 (28377D的操作是一模一样就是硬件设置的时候需要选择28377d进行相应的设置) 1)matlab与ccs联合编译需要安装对应的matlab版本和ccs版本,且只有2016a以上的matlab支持c2000系列。具体对应关系参照: http://software-dl.ti.com/ccs/esd/documents/ccs_matlab.html 2)matlab版本确定之后,还需要安装有关于ccs的相关软件: I、TI Code Composer Studio xxxx(对应

qq_42151264的博客 2万+

在MacBook M1/M2上,手把手教你打包包含嵌入模型的RagFlow Docker镜像(避坑指南)

本文详细指导如何在MacBook M1/M2上构建ARM64架构的RagFlow Docker镜像,涵盖环境准备、依赖处理、镜像构建及性能优化全流程。特别针对Apple Silicon芯片的兼容性问题提供解决方案,帮助开发者高效完成本地开发环境搭建。

weixin_26908317的博客 242

android中处理中文乱码和中文部分乱码

1.第一种情况:   服务器与客户端编码不统一造成中文乱码,当服务器返回数据是UTF-8格式时,客户端在读取输入流时,需要将其转换成UTF-8格式,如下是客户端部分代码: //设置URL并且打开连接 url=new URL("http://192.168.1.7:8080/exa/zh_cn"); httpurlconnection=(HttpURLConnection)url.ope

cuifangfang1177的专栏 4万+

从零到一:桌面宠物的硬件架构设计与工程实践

本文详细介绍了基于STM32F103C8T6主控平台的桌面宠物机器人硬件架构设计与工程实践。内容涵盖电源管理、舵机控制、PCB布局及系统调试等核心环节,为硬件爱好者提供从零到一的完整开发指南,助力打造稳定可靠的智能桌面伴侣。

alice7model的博客 1112

求一段看不懂的乱码_求一对乱七八糟表示废话的符号!急急急急急急!

展开全部1、×&%¥e69da5e887aa62616964757a686964616f31333433636136#@……2、§№☆●◎□◆○◎★▲△■※£¤¢℃¥ξοωχυλβιμητσ3、@#$^&%!$# ……*&%¥&@34%#!4、★☆★$ & ¤ § | °゜ ¨ ± · × ÷ ˇ ˉ ˊ ˋ ˙ Γ Δ Θ Ξ Π Σ Υ Φ Ψ Ω α ...

weixin_28771751的博客 26万+

c转c++——蓝桥杯

在这里,`int &i` 表示 `i` 是一个整型的引用变量,而不是一个拷贝,这意味着在循环中对 `i` 的修改会影响到数组 `arr` 中对应位置的值。arr则是需要遍历的数组。一、为啥要转C++:之前只学过C语言,然后为了蓝桥杯苦哈哈敲了C好久,偶然听了别人的意见去看了一下C++后发现简直太香了——C++不像C要把底层逻辑自己敲出来,而是可以直接调用STL函数库(比如排序,C语言可能要敲个几十行代码C++直接用调用sort函数就可以了),而且C++完全兼容C语言,里面的语法全部可以用C替换。

smwymzqbyl的博客 2045

分级 API Key 的使用案例

分级 API Key 的使用案例 1. 背景介绍 1.1 问题由来 随着网络服务的普及,API(Application Programming Interface,应用程序编程接口)成为了连接不同系统和应用的关键桥梁。API Key(API密钥)

欢迎来到我的优快云空间!这里聚焦AI大模型应用实战,分享前沿技术、实战案例与开发经验。 998

乱码大全(二) (转)

乱码大全(二) (转)[@more@] 2. XxencodeXML:namespace prefix = o ns = "urn:schemas-microsoft-com:Office:office" /> ...

cuiji1279的博客 3万+

电脑硬件:电脑主板上的接口介绍,看完你就懂了

它们主要用于连接老式的键盘和鼠标,虽然速度和兼容性不如USB接口,但在某些特定场合依然发挥着重要作用。PCIe接口是主板上的扩展能力象征,可以连接各种扩展卡,如显卡、声卡、网卡等。电脑主板作为电脑硬件组成关键的部分,今天给大家分享一下电脑主板上有哪些接口,具体每一个接口的特点、使用场景,有需要的朋友可以来了解一下!它们不仅能连接鼠标、键盘、U盘、打印机,还能连接各种外设,如移动硬盘、游戏手柄等。:虽然现在用得越来越少,但在一些特定场合,如工业控制、老旧设备上,仍然需要使用PS/2接口。

IT技术分享社区 2787

乱码解决大全

乱码解决大全 原创 ...

weixin_41946274的博客 8万+

在 SAP ABAP 生态中偏爱面向对象,而不是过程式堆叠

本文探讨了ABAP开发中过程式与面向对象编程的共存现状及优化方向。文章指出,虽然过程式编程在ABAP中仍广泛存在,但随着业务复杂度提升,面向对象编程在可维护性、可测试性和重构便利性方面展现出明显优势。作者建议将过程式代码作为"适配层",仅负责输入输出转换,而将核心业务逻辑封装在类中。文章通过实际案例展示了这种架构如何提高交付效率,并提供了将Function Module转化为"薄包装"的具体实现方案,强调面向对象设计在SAP Gateway和RAP等现代架构中的重要性

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 136

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

各种中文乱码解决大全

控制台中文乱码: 解决方法: -Dfile.encoding=UTF-8

qq1076376640的博客 51万+

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

Pycharm乱码解决大全

运行时控制台乱码 在Settings的Editor里点击FileEncoding,在下图中三个位置修改编码一致即可(一般为UTF-8或者GBK)

weixin_42455006的博客 2万+

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

乱码大全

<br /> 很久很久以前我转载过的一篇文章,这篇文章很大程度帮助了我。后来曾一度删除,但是发现很不方便,所以还是再次拷贝过来以备查阅。<br /> 发信人: bluesea (蓝海), 信区: Internet<br /> 标 题: 乱码大全(1)──综述(第二版)<br /> 发信站: BBS 水木清华站 (Sun Feb 15 15:54:37 1998)<br /><br /> 乱码大全(1)──综述(第二版)<br /><br /> 本文第一版本于98年2月3日发于本板。这一版本修改了原

23万+

中文乱码解决大全

|字号 订阅 一、Java中文问题的由来  Java的内核和class文件是基于unicode的,这使Java程序具有良好的跨平台性,但也带来了一些中文乱码问题的麻烦。原因主要有两方面,Java和JSP文件本身编译时产生的乱码问题和Java程序于其他媒介交互产生的乱码问题。 首先Java(包括JSP)源文件中很可能包含有中文

WlHelloWorld的专栏 1万+

idea各种中文显示乱码解决大全

中文乱码问题分类: 编码普通中文乱码 properties文件中文乱码 console控制台中文乱码 搜索框中文乱码 svn注释中文乱码 问题截图: 2、properties文件中文乱码 4,、搜索框中文乱码 5、svn注释中文乱码     解决方法: 1、编码普通中文乱码 ①settings --&gt; editor  --&gt; code style ...

liqimo1799的专栏 15万+

解决中文乱码问题大全

相信大家在开发过程中遇到很多中文乱码的问题,为此小编在这里汇集了很多不同情况下怎么解决中文乱码,希望对大家有所帮助 1、IDEA控制台输出乱码 修改idea配置文件:找到idea的安装目录,在bin目录下找到dea64.exe.vmoptions和idea.exe.vmoptions这两个文件,分别在这两个文件添加:-Dfile.encoding=UTF-8 依次点击File | Setting...

祖哥的博客 49万+
上一篇: 乱码算法大全(一)Uuencode
下一篇: 乱码大全(三)
neil
博客等级 码龄27年 68粉丝 4原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值