如何把乱码文档改成正常字体?

285 2024-06-19 23:50

一、如何把乱码文档改成正常字体?

一、可以先复制到记事本中,没问题了,再从记事本复制word中。系统默认记事本使用的是默认的可以正常显示的编码。

二、也可以用Notepad2等可以选择编码的文本软件。乱码时可以选择“重新编码”,在弹出的选项中进行选择,总有一个能正常显示的。正常后再复制到word文件中。

三、直接复制到word2007文件中时,可以选择无格式文本粘贴,直接用word默认编码显示。点“粘贴”下面的下箭头,点“选择性粘贴”。在弹出的窗口中选择即可。

二、如何把乱码改成正确的文字?

把乱码改成正确的文字的方法步骤

一、可以先复制到记事本中,没问题了,再从记事本复制word中。系统默认记事本使用的是默认的可以正常显示的编码。

二、也可以用Notepad2等可以选择编码的文本软件。乱码时可以选择“重新编码”,在弹出的选项中进行选择,总有一个能正常显示的。正常后再复制到word文件中。

三、直接复制到word2007文件中时,可以选择无格式文本粘贴,直接用word默认编码显示。点“粘贴”下面的下箭头,点“选择性粘贴”。在弹出的窗口中选择即可。

三、为什么改了gbk还是乱码?

我们知道在计算机内存中,存储的是二进制数据,在网络传输中,也是二进制数据,但最终呈现给用户的是字符串,二进制与字符串的转化就需要编码、解码的参与,如果世界上只有一种字符编码方式,就不会有乱码这一说了,但事实是,编码的方式太多了,utf-8、utf-32、utf-16、gbk、gb2312、iso-8859-1、big5、unicode等等。由于每个编码的规则不一样,一般都不能用一种进行编码,用另一种进行解码。如utf-8中,一个字母用一个字节表示,一个汉字用三个字节表示,特殊的汉字用四个字节表示,而gbk中,一个字母用一个字节表示,一个汉字用两个字节表示。

有一个说法,内存中存储的二进制是unicode码,如果内存中的数据需要存储或传输时,才会进行一次转化,将unicode码转化成其它的编码二进制(有待考证)。个人觉得这种方式很合理,毕竟unicode码中每个字符都有独一无二的二进制与之对应。

排查乱码问题,难度在于是在哪个环节出了问题,但乱码的本质都是一样的,读取二进制的编码和最初将字符串转化成二进制的编码方式不一致。

此处说明一个概念,编码指将字符串转化成二进制,解码指将二进制转化成字符串。

UTF-8编码,GBK解码

在这我们讨论一下,gbk和utf-8互转的乱码问题,直接上代码。

package com.anjz.test;

import java.io.UnsupportedEncodingException;

public class CodingTest {

public static void main(String[] args) throws UnsupportedEncodingException {

String str = "你好,世界";

System.out.println("字符串长度:"+str.length());

byte[] utfBytes = str.getBytes("utf-8");

System.out.println("utf-8需要"+utfBytes.length+"字节存储");

byte[] gbkBytes = str.getBytes("gbk");

System.out.println("gbk需要"+gbkBytes.length+"字节存储");

}

}

以上代码运行打印出一下内容:

字符串长度:5

utf-8需要15字节存储

gbk需要10字节存储

可以看出,utf-8存储一个汉字,需要3个字节,gbk存储一个汉字,需要2个字节。

现用单个字符测试。

package com.anjz.test;

import java.io.UnsupportedEncodingException;

public class CodingTest {

public static void main(String[] args) throws UnsupportedEncodingException {

String str = "你";

byte[] utfBytes = str.getBytes("utf-8");

for(byte utfByte:utfBytes){

//字节对应的十进制是负数,因java中的二进制使用补码表示的,此处使用0xff 还原成int表示的数据,再转化成16进制

System.out.print(Integer.toHexString((utfByte & 0xFF)) +",");

}

System.out.println();

String utf2gbkStr = new String(str.getBytes("utf-8"),"gbk");

System.out.println("utf-8转化成gbk:"+utf2gbkStr);

byte[] gbkBytes = utf2gbkStr.getBytes("gbk");

for(byte gbkByte:gbkBytes){

System.out.print(Integer.toHexString((gbkByte & 0xFF))+",");

}

System.out.println();

String gbk2utfStr = new String(utf2gbkStr.getBytes("gbk"),"utf-8");

System.out.println("gbk转化成utf-8:"+gbk2utfStr);

}

}

运行上面代码,得出的结果:

e4,bd,a0,

utf-8转化成gbk:浣�

e4,bd,3f,

gbk转化成utf-8:�?

用两个字符测试,将上述代码String str = “你”改成String str = “你好”。运行代码,得出的结果:

e4,bd,a0,e5,a5,bd,

utf-8转化成gbk:浣犲ソ

e4,bd,a0,e5,a5,bd,

gbk转化成utf-8:你好

上述实验中,utf-8转化成gbk出现乱码,这个很好理解,但是再还原回去,gbk转化成utf-8,单个中文字符依然是乱码,两个字符却能正常显示,这个到底是怎么回事呢?

经过一番研究,想把这个事说明白,还需要从它们的编码规则着手。

ISO-8859-1

单字节编码,向下兼容ASCII,其编码范围是0x00-0xFF,0x00-0x7F之间完全和ASCII一致,0x80-0x9F之间是控制字符,0xA0-0xFF之间是文字符号。

GBK

采用单双字节变长编码,英文使用单字节编码,完全兼容ASCII字符编码,中文部分采用双字节编码。双字节其编码范围从8140至FEFE(剔除xx7F)。

单字节:00000000 - 01111111

双字节:10000001 01000000 - 11111110 11111110 (剔除******** 01111111)

单字节、双字节的区分通过高字节高位区分,单字节高位为0,双字节的高字节高位为1。

UTF-8

可变长字符编码,是unicode码的具体实现,UTF-8用1到6个字节编码Unicode字符。

UTF-8编码规则:如果只有一个字节则其最高二进制位为0;如果是多字节,其第一个字节从最高位开始,连续的二进制位值为1的个数决定了其编码的字节数,其余各字节均以10开头。 

1字节 0xxxxxxx

2字节 110xxxxx 10xxxxxx

3字节 1110xxxx 10xxxxxx 10xxxxxx

4字节 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx

5字节 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx

6字节 1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx

明白上述GBK和UTF-8的编码规则,我们再分析一下,单个中文字符是乱码,两个字符却能正常显示的问题。

“你”

UTF-8编码对应的二进制:11100100 10111101 10100000

将上述二进制通过GBK进行解码,根据GBK规则,第一个字节高位为1,使用双字节编码,

“11100100 10111101”解码成“浣”,“10100000”对于GBK来说是非法的,就解码成了一种特殊字符“�”。

看看能不能将“浣�”还原回“你”呢?

GBK编码对应的二进制:11100100 10111101 00111111

看到上述的二进制,根本不符合UTF-8编码规则,故用UTF-8进行解码,是解码成了一些特殊字符“�?”。

对于上述情况可以看出,一个二进制,如果不符合当前的编码规则,会被解码成特殊字符,但此特殊字符再进行编码,是回不到最初的二进制的。

 

用同样的方式,分析“你好”为什么最终可以正常显示。

UTF-8编码对应的二进制:11100100 10111101 10100000 11100101 10100101 10111101

将上述二进制通过GBK进行编码,根据GBK规则,使用双字节编码,“1100100 10111101”解码成“浣”,“10100000 11100101”解码成“犲”,“10100101 10111101”解码成“ソ”。

看看能不能将“浣犲ソ”还原成“你好”呢?

GBK 编码对应的二进制:11100100 10111101 10100000 11100101 10100101 10111101

可以看出二进制是可以被还原的,将此二进制通过UTF-8解码,肯定能变成“你好”。

 

可以看出,一个字符串,通过UTF-8进行编码,再通过GBK进行解码,再将得到的字符串进行GBK编码,最后将得到的二进制通过UTF-8解码,能否还原到最初的字符串,在于UTF-8编码后得到的二进制,是否符合GBK的编码规则,如果符合,最终就可以还原,如果不符合,就不可还原。

GBK编码,UTF-8解码

package com.anjz.test;

import java.io.UnsupportedEncodingException;

public class CodingTest {

public static void main(String[] args) throws UnsupportedEncodingException {

String str = "你好";

byte[] gbkBytes = str.getBytes("gbk");

for(byte gbkByte:gbkBytes){

//字节对应的十进制是负数,因java中的二进制使用补码表示的,此处使用0xff 还原成int表示的数据,再转化成16进制

System.out.print(Integer.toHexString((gbkByte & 0xFF)) +",");

}

System.out.println();

String gbk2utfStr = new String(str.getBytes("gbk"),"utf-8");

System.out.println("gbk转化成utf-8:"+gbk2utfStr);

byte[] utfBytes = gbk2utfStr.getBytes("utf-8");

for(byte utfByte:utfBytes){

System.out.print(Integer.toHexString((utfByte & 0xFF))+",");

}

System.out.println();

String utf2gbkStr = new String(gbk2utfStr.getBytes("utf-8"),"gbk");

System.out.println("utf-8转化成gbk:"+utf2gbkStr);

}

}

运行上述代码,结果为:

c4,e3,ba,c3,

gbk转化成utf-8:���

ef,bf,bd,ef,bf,bd,ef,bf,bd,

utf-8转化成gbk:锟斤拷锟�

上述结果应该都在意料之中,我们通过上述的方法分析一下。

“你好”GBK编码的二进制:11000100 11100011 10111010 11000011

GBK编码的二进制数据,完全匹配不了UTF-8的编码规则,最终UTF-8只能按如下方式匹配,查看第一个字节,开头“110”,理论上匹配两个字节,但看下一个字节,开头却不是“10”,最终“11000100”解码成“�”,看第二个字节开头是“1110”,理论匹配三个字节,看下个字节符合,以“10”开头,但下下个字节开头是“110”,不符合匹配,最终“11100011 10111010”解码成“�”,同理“11000011”也解码成“�”,这个符号都是为找不到对应规则随意匹配的一个特殊字符。

“���”UTF-8编码的二进制为:11101111 10111111 10111101 11101111 10111111 10111101 11101111 10111111 10111101

这个二进制和原先的二进制不相同,根本转化不到最初的字符串,按照GBK的编码规则,“11101111 10111111”编码成“锟”,“10111101 11101111” 编码成“斤”,“10111111 10111101”编码成“拷”,“11101111 10111111”编码成“锟”,“10111101”不符合GBK规则,编码成特殊字符“�”。

理论上说,用GBK编码,UTF-8解码的字符串是不能还原到最初的字符串的,因UTF-8编码规则的特殊性,GBK编出的二进制,是很难匹配上的。

总结

理论上说,系统出现乱码,将乱码还原到最初的样子,上述UTF-8编码,GBK解码,这个有时是可以还原的,有时是还原不了的,要看UTF-8编码的二进制是否都能符合GBK的编码规则,但GBK编码,UTF-8解码,这个基本是条不归路。

但实际中,有一种情况,是100%可以将乱码还原成最初的字符串。就是任意编码格式编码,ISO-8859-1解码,这个主要因为ISO-8859-1是单字节编码,而且匹配所有单字节情况,乱码字符串总是可以还原到最初的二

四、怎么把文本文件改成gbk编码?

notepad保存用的编码是你系统的默认的编码。只要你的系统默认编码是GBK,notepad用ANSI模式保存的就是GBK编码。如果系统默认编码是BIG5或者日语,要命你也保存不出GBK的来x,x---你平时用电脑就是GBK编码状态。编码和字库没关系,Windows用的字库都是Unicode映射的。

五、手机怎么把数字乱码改成正常?

到手机程序里面找着它的功能,可以调整正常

六、服务器安装gbk导向乱码

在构建一个多语言网站时,服务器的编码设置是非常重要的。特别是在服务器安装gbk导向乱码这一问题上,需要特别注意。GBK编码是一种最常用的中文字符编码方式,但在某些情况下,服务器可能会出现乱码的问题。

首先,我们需要确定服务器的默认编码设置。通过以下步骤可以检查服务器的默认编码设置:

  1. 登录服务器管理面板。
  2. 找到服务器设置或编码设置选项。
  3. 查看默认编码设置,确保它为GBK或UTF-8。

如果服务器的默认编码设置不是GBK,那么就需要进行调整。以下是一些调整服务器编码的方法:

方法一:修改服务器配置文件

对于大部分服务器,可以通过修改服务器配置文件来调整默认编码设置。

  1. 登录服务器。
  2. 找到服务器配置文件,通常是位于/etc目录下的配置文件,例如/etc/httpd/conf/httpd.conf。
  3. 打开配置文件并找到 AddDefaultCharset 指令。
  4. 将指令的值修改为GB2312、GBK或UTF-8,取决于你的需求。
  5. 保存配置文件并重启服务器。

通过这种方法,你可以轻松地修改服务器的默认编码设置,确保支持GBK编码的页面可以正确显示。

方法二:修改网站代码

如果你无法直接修改服务器配置文件,还可以尝试修改网站的代码来解决乱码问题。

首先,需要确保网站的文档声明使用了正确的编码。在文档声明中添加以下代码:

<meta http-equiv="Content-Type" content="text/html; charset=gbk">

这会告诉浏览器使用GBK编码来解析网页内容。

其次,需要检查网页中是否存在其他导致乱码的因素。例如,数据库中存储的数据是否使用了正确的编码,以及网页中使用的字体是否支持GBK编码。

如果你使用了网站框架或内容管理系统,可以查阅相关文档了解如何调整编码设置。

方法三:使用转码工具

如果以上方法都无法解决问题,还可以考虑使用转码工具来处理乱码问题。

转码工具可以将原来编码错误的网页以正确的编码重新保存,从而解决乱码问题。

有些转码工具可以批量处理多个网页,非常方便快捷。

不过需要注意的是,转码工具可能会破坏原有的网页布局或样式,因此在使用之前最好先备份网页文件。

总结来说,服务器安装gbk导向乱码是一个常见的问题,但通过适当的调整可以轻松解决。无论是修改服务器配置文件、调整网站代码还是使用转码工具,都能帮助我们正确显示支持GBK编码的网页内容。

希望以上方法能对解决服务器安装gbk导向乱码问题有所帮助!

七、解决jQuery GBK乱码问题的方法

什么是jQuery GBK乱码问题

jQuery是广泛使用的JavaScript库,用于开发Web应用程序。然而,当使用jQuery处理GBK编码的文本时,有时可能会遇到乱码问题。

为什么会出现jQuery GBK乱码问题

在GBK编码中,一个中文字符占用2个字节,而在JavaScript中,一个字符通常表示为1个字节。当使用jQuery处理GBK编码的文本时,由于编码长度不一致,可能导致字符显示错误,从而出现乱码问题。

如何解决jQuery GBK乱码问题

有两种常见的解决方法:

  1. 方法一:转换编码

    可以使用JavaScript提供的encodeURIComponent函数将GBK编码的文本转换为URL编码格式,然后再使用decodeURIComponent函数将其解码。这样可以确保在JavaScript中正确处理GBK编码的文本。

    // 示例代码
    var gbkText = "中文内容";
    var encodedText = encodeURIComponent(gbkText);
    var decodedText = decodeURIComponent(encodedText);
    console.log(decodedText); // 输出:中文内容
                
  2. 方法二:使用外部库

    除了手动转换编码外,还可以使用一些专门处理编码的外部库,如iconv-lite、jschardet等。这些库提供了更多的编码转换选项,可以更方便地解决jQuery GBK乱码问题。

    // 示例代码(使用iconv-lite库)
    var iconv = require('iconv-lite');
    var gbkBuffer = new Buffer("中文内容", 'binary');
    var utf8Text = iconv.decode(gbkBuffer, 'gbk');
    console.log(utf8Text); // 输出:中文内容
                

总结

jQuery GBK乱码问题是由于GBK编码与JavaScript编码不一致所导致的。为了正确处理GBK编码的文本,可以使用encodeURIComponentdecodeURIComponent函数进行手动编码转换,或者使用外部库来处理编码转换。通过以上方法,可以有效解决jQuery GBK乱码问题。

感谢您阅读本文,希望对解决jQuery GBK乱码问题有所帮助。

八、如何把裙子改成背心

让您的裙子焕发全新的魅力:如何把裙子改成背心

引言

时尚界的变化总是让我们充满了好奇心。为了跟上不断发展的潮流,我们常常面临着更新换代的需求。而当您的衣橱中有一条您喜爱的裙子,却很少有机会穿它时,为何不尝试将它改造成独特的背心呢?本文将为您提供一个简单而有趣的教程,教您如何将裙子变身为时尚的背心。

步骤一:选购合适的裙子和配件

在开始制作背心之前,您需要准备一条合适的裙子。选择一条长度适中的裙子,并确保其面料质地适合背心的制作。此外,您还需要购买一些配件,如缝纫针、线以及装饰品,根据您的个人喜好选择。

步骤二:测量和剪裁

首先,将裙子放在一块平整的表面上,并使用缝纫针固定好。接下来,您需要开始测量和剪裁。根据您的身材和喜好,确定背心的长度,并使用剪刀将裙子修剪成适合的尺寸。

步骤三:缝合边缘

使用缝纫针和线,将裙子的边缘缝合起来。确保您选择与裙子面料相匹配的线,使缝纫线与裙子的颜色和质地相协调。缝合裙子的边缘时,要保持线的平整和牢固。

步骤四:添加装饰

现在,您可以给背心添加一些装饰品,以使其更加独特。您可以使用亮片、纽扣、丝带或刺绣等装饰元素来提升背心的时尚程度。无论您选择什么样的装饰品,都要确保它们与您的个人风格相符。

步骤五:穿上您的新背心

完成背心的制作后,恭喜您!现在是时候穿上您的全新背心,展示您的创造力和时尚品味。搭配一些合适的裤子或裙子,并配以时尚的饰品,您将成为人群中的焦点。

结论

通过将裙子改造成背心,您不仅可以给已有的衣物注入新的生命,还可以展示您的个人风格和创造力。无需大量的时间和金钱投入,您就可以拥有一件独特的时尚单品。赶快动手尝试吧!

九、如何把歌曲改成伴奏

在音乐界,伴奏是一种非常重要的元素,它能够为歌曲增添层次和动感。很多人在学唱歌的时候都希望有适合的伴奏来辅助自己,但是很难找到合适的版本。幸运的是,我们可以通过一些技巧和工具来将歌曲转化为伴奏,使我们能够更好地练习歌唱技巧。

1. 下载歌曲

首先,在将歌曲转化为伴奏之前,你需要从网上下载该歌曲的原始音频文件。你可以使用各种音乐下载软件或网站来获取你想要的歌曲。确保下载的文件是高质量的,并且没有其他杂音。

2. 使用音频编辑软件

接下来,你需要使用音频编辑软件来处理下载的歌曲。有很多强大的音频编辑软件可供选择,比如Audacity、Adobe Audition等。打开你选择的软件,并导入下载的歌曲文件。

3. 剪切歌曲部分

在将歌曲转化为伴奏之前,你可能需要剪切歌曲的一部分,以便更好地适应你的练习需求。音频编辑软件通常提供剪切功能,你可以选择特定的片段来进行剪切。确保选择的片段既能够展示你想要练习的部分,又不影响整体节奏。

4. 降低音乐音轨

为了将一首歌曲转化为伴奏,你需要将音乐音轨降低。音频编辑软件提供了降低音轨音量的功能,你可以用它来减少歌曲的原曲声音。这样一来,你的歌曲将更适合用作练习伴奏。

5. 相关工具

除了使用音频编辑软件,你还可以使用一些在线工具来辅助将歌曲转化为伴奏。例如,网上有一些免费的歌曲分离器,它们可以将歌曲的歌声和背景音乐分离出来。这样,你就可以得到一份有歌声的伴奏文件了。

6. 调整音频设置

在将歌曲改成伴奏的过程中,你可能还需要调整一些音频设置,以便获得更好的效果。你可以尝试调整均衡器、混响、压缩等音频效果,以增强伴奏的音质和音量。不同的歌曲可能需要不同的设置,所以尝试多次调整直到你满意为止。

7. 保存伴奏文件

在完成上述步骤后,你可以将歌曲另存为伴奏文件。确保选择一个适合的文件格式,比如MP3或WAV。保存好文件后,你就可以将它用作歌唱练习的伴奏了。

8. 注意事项

在将歌曲转化为伴奏的过程中,有一些事项需要注意:

  • 版权问题:请确保你拥有合法的下载和使用该歌曲的权限,不要侵犯他人的版权。
  • 音质损失:转化为伴奏可能会导致一定的音质损失,所以要尽量选择高质量的音频文件。
  • 细节处理:转化的伴奏可能不会完全符合原始歌曲,有些细节可能会丢失或变化。但这并不影响你的练习效果。
  • 通过以上步骤,你可以相对容易地将一首歌曲转化为伴奏,以便更好地练习和展示自己的歌唱技巧。记住,练习是提高的关键,利用好伴奏工具,你将在歌唱道路上不断进步!

    十、excel如何把日期格式改成年月日出现乱码?

    Excel要想将日期格式改成年月日而且不会出现乱吧,我们就给他进行一下设置就可以了,我们先点击到这个单元格,然后点击鼠标右键,在弹出的对话框当中,我们点击数值在这里面我们再点击年月日,让他以年月日的方式进行显示这种操作就行了,如果我们避免会出现乱码的话,我们其实只需要给他设成文本格式就可以了,然后直接输入的是什么显示的就是什么,不会出现别的差错。

    顶一下
    (0)
    0%
    踩一下
    (0)
    0%
    相关评论
    我要评论
    点击我更换图片