请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

大模型返回的数据是乱码怎么办

nodejs 版本22.14
window11

  const stream = await client.chat({
    messages: [
      {
        "role": "user",
        "content": "你好"
      },
    ],
    // 流式输出
    stream: true
  }, 'ERNIE-Speed-128K')

  try {
    for await (const chunk of stream as AsyncIterableIterator<any>) {
      let content = chunk.result || chunk.choices?.[0]?.delta?.result;

      // 如果内容是 Base64 编码
      if (typeof content === 'string' && /[A-Za-z0-9+/=]/.test(content)) {
        content = Buffer.from(content, 'base64').toString('utf-8');
      }

      console.log(content); // 输出内容
    }
  } catch (error) {
    console.error('Error during streaming:', error);
  }
  // 流式输出固定方法
  for await (const chunk of stream as AsyncIterableIterator<any>) {
    console.log(chunk);
  }
  console.log(stream)

图片描述
根据文档修改和ai修改出来的都是乱码,文档内没找到乱码的解决办法

正在回答 回答被采纳积分+3

1回答

张轩 2025-04-18 15:34:16

同学你好

你用的是什么终端软件,我觉得是终端的编码问题,如果用的是 powershell,可以尝试:

$OutputEncoding = [System.Text.Encoding]::UTF8


0 回复 有任何疑惑可以回复我~
  • 提问者 屑_jlrCM5 #1
    我用的是powershell,检查了设置确定为中文编码还是不行GB2312和GB13030编码也试过了,都不行
    回复 有任何疑惑可以回复我~ 2025-04-19 11:42:13
  • 我问ai倒是解决乱码问题了
    以下是永久修改PowerShell编码为UTF-8的方法一详细实现过程​(基于配置文件修改):
    
    ​1. 确认配置文件路径​
    powershell
    复制
    # 查看当前用户的配置文件路径(默认不存在)
    $PROFILE
    输出示例:
    C:\Users\<用户名>\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1
    
    ​2. 创建配置文件​
    powershell
    复制
    # 检查并创建配置文件(需管理员权限)
    if (!(Test-Path -Path $PROFILE)) {
        New-Item -ItemType File -Path $PROFILE -Force
    }
    ​3. 编辑配置文件​
    用记事本打开配置文件:
    
    powershell
    复制
    notepad $PROFILE
    在文件中添加以下内容:
    
    powershell
    复制
    # 强制输入输出编码为UTF-8(无BOM)
    $OutputEncoding = [Console]::InputEncoding = [Console]::OutputEncoding = [System.Text.Encoding]::UTF8
    
    # 可选:同时修改控制台代码页为65001(UTF-8)
    chcp 65001 | Out-Null
    ​4. 解决执行策略限制​
    若提示脚本禁止运行,需修改执行策略:
    
    powershell
    复制
    Set-ExecutionPolicy RemoteSigned -Scope CurrentUser -Force
    ​说明​:
    
    RemoteSigned:允许本地脚本运行,远程脚本需签名。
    按 Y 确认更改。
    ​5. 验证配置生效​
    重启PowerShell。
    执行以下命令验证:
    powershell
    复制
    # 检查编码设置
    [Console]::OutputEncoding.EncodingName  # 应显示"Unicode (UTF-8)"
    
    # 检查控制台代码页
    chcp  # 应输出65001
    最好将vscode的终端设置为poweshell就行了
    回复 有任何疑惑可以回复我~ 2025-04-20 20:32:20
  • 提问者 屑_jlrCM5 回复 慕无忌3143649 #3
    回复 慕无忌3143649:非常感谢!终于是搞定了
    回复 有任何疑惑可以回复我~ 2025-04-27 20:16:52
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号