【求助】ubuntu server 12.04 Nodejs npm乱码

【求助】ubuntu server 12.04 Nodejs npm乱码

在ubuntu server 12.04上部署nodejs 使用npm命令乱码,查看npm list前半部都是乱码的,请问怎么解决?

vim /etc/default/locale

下只有

LANG="en_US.UTF-8"
5 回复

在Ubuntu Server 12.04上部署Node.js时遇到npm list命令输出乱码的问题,通常是因为系统默认的字符编码设置不正确。您已经检查了/etc/default/locale文件中的LANG变量设置为en_US.UTF-8,但可能需要进一步确保系统的其他部分也支持UTF-8编码。

解决步骤:

  1. 确保所有环境变量都设置为UTF-8:

    • 打开终端并编辑/etc/default/locale文件,确保文件中包含以下行:
      LANG="en_US.UTF-8"
      LC_ALL="en_US.UTF-8"
      
    • 然后运行以下命令以使更改生效:
      sudo locale-gen en_US.UTF-8
      sudo dpkg-reconfigure locales
      
  2. 更新Node.js和npm:

    • 确保你安装的是最新版本的Node.js和npm。可以使用以下命令来更新它们:
      sudo apt-get update
      sudo apt-get install nodejs npm
      
  3. 重新启动系统或登录会话:

    • 更新环境变量后,建议重启系统或至少注销并重新登录,以确保新的环境变量生效。

示例代码与验证:

  • 检查当前的locale设置是否正确:

    locale
    

    输出应包含类似以下内容:

    LANG=en_US.UTF-8
    LC_CTYPE="en_US.UTF-8"
    LC_NUMERIC="en_US.UTF-8"
    LC_TIME="en_US.UTF-8"
    LC_COLLATE="en_US.UTF-8"
    LC_MONETARY="en_US.UTF-8"
    LC_MESSAGES="en_US.UTF-8"
    LC_PAPER="en_US.UTF-8"
    LC_NAME="en_US.UTF-8"
    LC_ADDRESS="en_US.UTF-8"
    LC_TELEPHONE="en_US.UTF-8"
    LC_MEASUREMENT="en_US.UTF-8"
    LC_IDENTIFICATION="en_US.UTF-8"
    LC_ALL=en_US.UTF-8
    
  • 验证npm list命令是否仍然出现乱码:

    npm list
    

如果上述步骤完成后问题依旧存在,可能需要检查Node.js和npm的安装是否存在问题,或者尝试使用其他语言环境设置(如zh_CN.UTF-8)进行测试。


我的服务器上也是这个… 贴乱码看看什么情况?

%%➤ cat /etc/default/locale
LANG="en_US.UTF-8"

执行

├─┬ mysql@2.0.0-alpha9
│ ├── bignumber.js@1.0.1
│ └── require-all@0.0.3
├─┬ socket.io@0.9.16
│ ├── base64id@0.1.0
│ ├── policyfile@0.0.4
│ ├── redis@0.7.3
│ └─┬ socket.io-client@0.9.16
│ ├─┬ active-x-obfuscator@0.0.1
│ │ └── zeparser@0.0.5
│ ├── uglify-js@1.2.5
│ ├─┬ ws@0.4.31
│ │ ├── commander@0.6.1
│ │ ├── nan@0.3.2
│ │ ├── options@0.0.5
│ │ └── tinycolor@0.0.1
│ └── xmlhttprequest@1.4.2
└── wemo@0.0.2

楼上 执行 npm list

在Ubuntu Server 12.04上遇到Node.js和npm命令输出乱码的问题,通常是因为系统默认的语言环境设置不正确导致的。你需要确保系统的语言环境支持UTF-8编码。你可以通过修改/etc/default/locale文件来更改系统的语言环境设置。

首先,打开/etc/default/locale文件:

sudo nano /etc/default/locale

将文件中的内容改为:

LANG="zh_CN.UTF-8"

这里的zh_CN.UTF-8表示简体中文的UTF-8编码,如果你使用的是其他语言,可以根据需要修改为相应的值。

保存并退出编辑器(在nano中,可以按Ctrl+X,然后按Y键确认保存,最后按Enter键)。

接着,重新登录或者重启系统使更改生效。你可以运行以下命令来重新加载系统语言环境设置:

source /etc/default/locale

为了验证是否设置成功,可以在终端中运行:

locale

如果一切设置正确,你应该能看到类似以下的输出:

LANG=zh_CN.UTF-8
LC_CTYPE="zh_CN.UTF-8"
LC_NUMERIC="zh_CN.UTF-8"
LC_TIME="zh_CN.UTF-8"
LC_COLLATE="zh_CN.UTF-8"
LC_MONETARY="zh_CN.UTF-8"
LC_MESSAGES="zh_CN.UTF-8"
LC_PAPER="zh_CN.UTF-8"
LC_NAME="zh_CN.UTF-8"
LC_ADDRESS="zh_CN.UTF-8"
LC_TELEPHONE="zh_CN.UTF-8"
LC_MEASUREMENT="zh_CN.UTF-8"
LC_IDENTIFICATION="zh_CN.UTF-8"
LC_ALL=

完成上述步骤后,再次尝试运行npm list命令,应该就不会出现乱码问题了。

如果你使用的是其他语言环境,只需要把上面的zh_CN.UTF-8替换为你对应的语言环境即可。

回到顶部