我有一个文本文件,其中包含当前以GB2312(简体中文)编码的本地化语言字符串,但我的所有其他语言文件都是UTF-8.我发现使用这个文件非常困难,因为我的文本编辑器都不能正常使用它并继续破坏它.有没有工具可以将其转换为UTF-8,这样做有什么缺点吗?将它保留为GB2312并使用不同的编辑器(如果是这样,你能推荐一个)会更好吗?
更新:我正在使用Windows XP(英文安装).
更新#2:我尝试使用Notepad ++和Notepad2编辑GB2312文件,但两者都无法读取文件并破坏它们.
我正在使用Python脚本将文件转换gb2312为utf-8.这个角色混淆了一切:( ?它是一个符号,而不是"mm").
text = '?'
text.encode(encoding='gb2312')
Run Code Online (Sandbox Code Playgroud)
引发此错误:
UnicodeEncodeError:'gb2312'编解码器无法对位置1中的字符'\ u040b'进行编码:非法多字节序列
我可以使用解决方法text.replace('?', 'mm').但如果有其他人这样的角色怎么办?这有什么问题?为什么这么特别?
有没有办法让Python将其视为任何其他角色?
我使用nsurlsession并接收了GB-2312编码的nsdata.如何将编码从GB-2312更改为UTF-8.
我试过这段代码
let enc = CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingGB_18030_2000)
var result = NSString(data: data, encoding:enc)!
Run Code Online (Sandbox Code Playgroud)
但它有一个错误
使用未解析的标识符'kCFStringEncodingGB_18030_2000'
我正在研究一个IMAP电子邮件脚本,我有一些用GB2312编码的行(我假设是中文编码),看起来像这样=?GB2312?B?foobarbazetc
我怎样才能开始使用这个字符串?我检查过mb_list_encodings(),这个没有列出.
我试图使用base64显示和更新简化的中文(GB2312)charset,Base64到GB2312工作正常,但我无法将GB2312转换为base64
String str="17DP5Mqxx+vFxNXV";
Base64 base64=new Base64();
String gb2312=new String(base64.decode(str.getBytes()),"GB2312");
System.out.println("GB2312 = "+gb2312);
String baseString=new String(base64.encode(gb2312.getBytes()));
System.out.println("Base64 = "+baseString);
Run Code Online (Sandbox Code Playgroud)
实际结果是
GB2312 =装箱时请拍照
Base64 = 6KOF566x5pe26K + 35ouN54Wn
预期的结果是
GB2312 =装箱时请拍照
Base64 = 17DP5Mqxx + vFxNXV
我的应用程序需要读取以 GB2312 编码的文本文件。这是当前的代码。
\n\n SGFString = try String(contentsOf:path)\nRun Code Online (Sandbox Code Playgroud)\n\n它抛出异常。
\n\n\n\n\n无法打开\xe2\x80\x99,因为无法确定其内容的文本编码\xe2\x80\x99。
\n
在查看 String.Encoding 值时,没有 GB2312。读取 GB2312 文本文件的最佳方法是什么?
\n\n谢谢\n雷
\n