小编mrk*_*nck的帖子

PowerShell 会话中的字符编码 (UTF-8)

大家好,

作为控制台/终端爱好者和数据库管理员 (PostgreSQL),使用正确的字符编码对我来说至关重要。因此,我希望我的客户端控制台/终端窗口始终设置为例如 UTF-8。

回到 Windows 的 CMD.EXE,这个尝试就像输入命令chcp 65001来设置所需的代码页标识符一样简单。现在,我正在切换到 PowerShell 并且设置字符编码似乎很奇怪,恕我直言。

我已经对如何将 PowerShell 会话设置为 UTF-8 进行了一些研究,我发现我需要三个步骤/命令来完成它。

PS C:\> $OutputEncoding = [System.Text.Encoding]::UTF8
PS C:\> [Console]::OutputEncoding = [System.Text.Encoding]::UTF8
PS C:\> chcp 65001
Run Code Online (Sandbox Code Playgroud)

尽管前两个命令不直观且难以记住...遗漏其中一个命令会导致无法正常工作!此外,仅设置其中一个似乎对其他人没有影响。

因此,我必须设置所有三个以使用 PostgreSQL 的psql数据库客户端。否则我在导出/导入数据时会遇到编码问题。

现在我的问题是:“为什么?难道没有更简单的方法可以在 PowerShell 中简单地设置字符编码吗?” 不幸的是,我自己没有找到任何关于设置字符编码的合理文档!

提前致谢


/编辑

TheIncorrigible1的第二条评论让我得到了迄今为​​止最好的答案:在 Powershell 中显示 Unicode - 因此可以将整个 PowerShell 与两个单独的语句设置为所需的编码 (UTF-8)。

PS C:\> $OutputEncoding = [System.Console]::OutputEncoding = [System.Console]::InputEncoding = [System.Text.Encoding]::UTF8
PS C:\> $PSDefaultParameterValues['*:Encoding'] = 'utf8'
Run Code Online (Sandbox Code Playgroud)

解释:

  • $OutputEncoding设置例如|(管道)和/或程序和/或进程之间的通信的编码。 …

windows postgresql powershell character-encoding

10
推荐指数
1
解决办法
1万
查看次数

如何使用外部数据库浏览器或类似工具访问 ddev 的数据库?

据我所知,DDEV 为 phpMyAdmin 提供了配置选项,以便轻松地使用容器式 MySQL/MariaDB 数据库。但我宁愿使用不同的工具,例如 phpStorm 或 DBeaver 等。有没有办法让我的愿望实现呢?

通过补充 docker-compose 配置,我相应地暴露了端口 3306。

version: '3.6'

services:
  web:
    ports:
      - 3306:3306
Run Code Online (Sandbox Code Playgroud)

尝试从我的客户端主机连接到容器式 MariaDB 数据库如下所示。

version: '3.6'

services:
  web:
    ports:
      - 3306:3306
Run Code Online (Sandbox Code Playgroud)

mysql mariadb ddev

5
推荐指数
1
解决办法
3232
查看次数