/*
Wraps the iconv API present on most systems, which allows for conversion
of bytes from one encoding to another. This package additionally provides
some convenient interface implementations like a Reader and Writer.
*/
package iconv
/*
#include <errno.h>
*/
import "C"
import "os"
// Alias os.Error for convenience
type Error os.Error
// Error codes returned from iconv functions
var (
E2BIG Error = os.Errno(int(C.E2BIG))
EBADF Error = os.Errno(int(C.EBADF))
EINVAL Error = os.Errno(int(C.EINVAL))
EILSEQ Error = os.Errno(int(C.EILSEQ))
ENOMEM Error = os.Errno(int(C.ENOMEM))
)
// All in one Convert method, rather than requiring the construction of an iconv.Converter
func Convert(input []byte, output []byte, fromEncoding string, toEncoding string) (bytesRead int, bytesWritten int, err Error) {
// create a temporary converter
converter, err := NewConverter(fromEncoding, toEncoding)
if err == nil {
// call converter's Convert
bytesRead, bytesWritten, err = converter.Convert(input, output)
if err == nil {
var shiftBytesWritten int
// call Convert with a nil input to generate any end shift sequences
_, shiftBytesWritten, err = converter.Convert(nil, output[bytesWritten:])
// add shift bytes to total bytes
bytesWritten += shiftBytesWritten
}
// close the converter
converter.Close()
}
return
}
// All in one ConvertString method, rather than requiring the construction of an iconv.Converter
func ConvertString(input string, fromEncoding string, toEncoding string) (output string, err Error) {
// create a temporary converter
converter, err := NewConverter(fromEncoding, toEncoding)
if err == nil {
// convert the string
output, err = converter.ConvertString(input)
// close the converter
converter.Close()
}
return
}
分享到:
相关推荐
go get -u github.com/mushroomsir/iconv 支持字符集 UTF-8 GBK GB-18030 GB2312 大5 ISO-8859-1 EUC-JP Shift_JIS 更多即将推出 用法 import ( github . com / mushroomsir / iconv ) 转换字符串值 可以...
libiconv将字符串转换为请求的字符编码。 文档 参见 注意:Open返回一个转换描述符cd,cd包含转换状态,不能同时在多个线程中使用。 安装 go get github.com/qiniu/iconv 例子 转换字串 package main import ( ...
总的来说,iconv_windowsx64是Go语言在Windows 64位平台上处理字符编码转换的重要工具。它可以帮助开发者轻松地处理各种编码格式的数据,提高程序的兼容性和可扩展性,降低因为编码问题导致的错误和困扰。通过深入...
标题中的“GBK转UTF-8批量转换”是指在计算机编程...总之,GBK转UTF-8批量转换是解决多语言文本处理中常见的问题,通过正确的工具和方法,可以有效地实现大量文件的编码转换,确保在各种环境中正确显示和处理中文字符。
为了解决这个问题,我们可以引入iconv-go库来进行编码转换。安装iconv-go如下: ```bash go get github.com/djimenez/iconv-go ``` 然后在解析网页之前,先使用iconv-go将非UTF-8编码的响应体转换为UTF-8: ```go...
9. **iconv.dll**:字符集转换库,用于在不同的字符编码之间进行转换,确保数据在不同系统间的兼容性。 10. **glib-2.0.dll**:这是GObject库的一部分,是GNOME项目的基础库,提供了一组通用的数据结构和函数,...
接着是关于编码转换的问题。在PHP中,`iconv`函数用于在不同字符编码之间转换字符串。例如,将GB2312编码的字符串转换为UTF-8: ```php $utf = iconv('GB2312', 'UTF-8', $_REQUEST['keyword']); ``` 反之,如果...
30. `echo "ADSF" | iconv -f UTF8 -t GBK`:将UTF8编码的文本转换为GBK编码。 31. `cat -n file`:在输出的文件内容前加上行号。 32. `chattr +i file`:设置文件为只读,使得连root用户也无法修改。 33. `...
可以通过 `iconv` 工具将文件从一种编码转换为另一种编码。 **示例**: 假设原始文件的数据编码为 ASCII,而数据库使用的编码为 UTF-8,可以使用以下命令进行转换: ```bash iconv -f ASCII -t UTF-8 ...
iconv -l 列出已知的编码 iconv -f fromEncoding -t toEncoding inputFile > outputFile creates a new from the given input file by assuming it is encoded in fromEncoding and converting it to toEncoding. ...
第十九章“iconv,文件编码转换”会介绍如何处理不同编码格式的文件,确保数据在不同系统间正确传输。 总的来说,这个运维经专栏是针对IT从业者的一份实用指南,通过这些文章,读者可以学习到提高工作效率的多种...