网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
05月11日漏签0天
mathematica吧 关注:19,805贴子:73,838
  • 看贴

  • 图片

  • 吧主推荐

  • 游戏

  • 4回复贴,共1页
<<返回mathematica吧
>0< 加载中...

如何改变输出编码

  • 取消只看楼主
  • 收藏

  • 回复
  • 隨意超
  • 小吧主
    13
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
(WriteString[#, "中文zh"] ; Close@#) &@"E:/test.txt"
用记事本打开 E:/test.txt
内容为 \:4e2d\:6587zh
这种 unicode 没法用
是否能改变输出编码,或者有其他变通的方法?


  • 隨意超
  • 小吧主
    13
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
问题升级
字符串转Base64再转回字符串 ImportString[ExportString["中文zh", "Base64"], "Base64"]
Base64在处理字符串的时候使用平台的缺省编码方式
使用UTF-8或者GB2312,而这两种编码方式生成的base64编码是不同的
这样,若果A平台的编码方式是UTF-8,B平台是GB2312,那么在A上用Base64编码的的字符串在B平台上解码就是乱码
如何强制在base64的时候使用UTF-8 ?


2025-05-11 15:49:08
广告
  • 隨意超
  • 小吧主
    13
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
例如图片可以转换成Base64编码
ExportString[
ExportString[
Image[{{{0, 0.6, 0}, {0.4, 0.1, 0.8}, {0.7, 0.9, 0.7}}, {{1, 0,
0.9}, {0.6, 0.6, 1}, {1, 0.8, 0.3}}}, ColorSpace -> "RGB"],
"PNG"], "Base64"]
ImportString[%, "Base64"]
那么一个UTF8的文本文件如何转换成Base64编码


  • 隨意超
  • 小吧主
    13
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
终于不太完美的解决了
((WriteString[#, "中文zh"]; Close@#) &@
OpenWrite[#, CharacterEncoding -> "UTF8"];
ExportString[ReadString@#, "Base64"]) &@"E:/test.txt"
主要用ReadString把文件转为字符串
如果再把Base64解码回来mma会出问题
可以去一些解码网站解码,例如: http://base64.xpcha.com/


  • 隨意超
  • 小吧主
    13
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
这样也可以强制用CP936编码方式生成base64编码
ExportString["中文zh", {"Base64", "Text"}, CharacterEncoding -> "CP936"]
问题圆满解决


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 4回复贴,共1页
<<返回mathematica吧
分享到:
©2025 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示