修改字符编码和文件格式编码

背景:windows和linux的默认文件格式和字符编码都不相同,导致在windows下新建或者编辑的文件在linux服务器上出现问题。比如文件格式编码不一致会导致在windows下编辑的linux脚本会执行失败,在windows下的文档在linux会有可能出现乱码。

一.字符编码修改

1.平时修改文件编码格式在windows直接用类似于notepad的工具打开转换下文本内容编码格式就可以了。使用无BOM的utf-8格式

 

但是有时候文本被传到linux后发现里面的中文乱码,这时候不愿意再重新修改上传一遍的话可以用以下两种方式修改编码格式为utf-8,以test.sql文件为例

2.用vi命令

vi test.sql

:set fileencoding=utf-8

:wq

3.用iconv命令

iconv -f GB2312 -t UTF-8 test.sql -o hi.sql

其中hi.sql是修改后输出的新文件,我试过不输出新文件的话老文件的编码修改不成功

二.文件格式修改

1.在windows下也可以用notepad修改,转化为unix格式

2.命令修改

vi 编辑文档

set fileformat=unix

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 可以使用 `OutputStreamWriter` 类来实现输出流的编码格式转换。具体步骤如下: 1. 创建一个 `OutputStream` 对象,用于输出数据。 2. 创建一个 `OutputStreamWriter` 对象,并将上一步创建的 `OutputStream` 对象作为参数传入。同时,指定需要转换的目标编码格式。 3. 使用 `write()` 方法输出数据,输出的数据将被自动转换为目标编码格式。 示例代码如下: ```java OutputStream outputStream = new FileOutputStream("output.txt"); OutputStreamWriter writer = new OutputStreamWriter(outputStream, "UTF-8"); writer.write("Hello, world!"); writer.close(); ``` 在上面的代码中,我们将数据以 UTF-8 编码格式输出到文件 "output.txt" 中。如果需要转换为其他编码格式,只需要将第二个参数修改为目标编码格式即可。 ### 回答2: 在Java中,OutputStream类是一个抽象类,用于表示输出字节流的父类。它的子类包括FileOutputStream和ByteArrayOutputStream等。OutputStream类用于将数据以字节形式写入输出流中。 然而,OutputStream类本身并不直接用于改变编码格式编码格式涉及将字符转换为字节的过程,而OutputStream类用于将字节写入输出流中,不直接处理字符。如果想要改变编码格式,我们应该在将字符转换为字节的过程中进行操作。 在Java中,常用的改变编码格式的类是OutputStreamWriter。OutputStreamWriter是Reader和Writer之间的桥梁,它能够将字符转换为字节,并且可以指定编码格式。 要改变编码格式,我们可以使用OutputStreamWriter的构造方法,将原始的OutputStream对象和指定的编码格式作为参数传递给它。例如,我们可以使用以下代码将编码格式改为UTF-8: OutputStream outputStream = new FileOutputStream("output.txt"); OutputStreamWriter writer = new OutputStreamWriter(outputStream, "UTF-8"); 上述代码中,我们首先创建了一个FileOutputStream对象,用于将字节写入文件中。然后,我们将该对象传递给OutputStreamWriter的构造方法,同时指定编码格式为UTF-8。这样,当我们使用writer写入字符时,会以UTF-8的编码格式将其转换为字节,并写入到outputStream中。 总结起来,OutputStream类本身并不能直接改变编码格式,但我们可以借助于OutputStreamWriter类来实现这一功能。通过使用OutputStreamWriter的构造方法,我们可以在将字符转换为字节的过程中指定编码格式,从而实现改变编码格式的效果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值