Unicode characters are doubled up in Powershell (Running under Cmder)

0

Ok, this is a weird one. For the last few years, I've used a Unicode lightning bolt symbol as my prompt in Powershell. I just got a new laptop and re-installed everything. I run Powershell using Cmder, and simply backed up the entire directory onto Dropbox and restored onto my new laptop, so nothing should be changed. Now, my prompt is two lightning bolts. The prompt function just looks like this:

Write-Host -ForegroundColor Yellow -NoNewLine "`n" ([char]0x26a1).ToString()

When I run this command, I get: enter image description here

So, basically character 0x26a1 is two bolts instead of one. Same version of Windows 10, same version of Powershell, same version of Cmder, all the same settings. What would cause PowerShell to render Unicode symbols like this? There's also a few other characters that are doubled up (like 26aa is two circles), but most characters are fine (2601 is one cloud). I've tried various fonts in the terminal as well, but each one is doubled up. What part of Windows would be responsible? Thanks!

Update: settings file

# name: Pressing Ctrl-D exits session
# type: bool
# Ctrl-D exits cmd.exe when it is pressed on an empty line.
ctrld_exits = 1

# name: Toggle if pressing Esc clears line
# type: bool
# Clink clears the current line when Esc is pressed (unless Readline's Vi mode
# is enabled).
esc_clears_line = 1

# name: Match display colour
# type: int
# Colour to use when displaying matches. A value less than 0 will be the
# opposite brightness of the default colour.
match_colour = -1

# name: Executable match style
# type: enum
#  0 = PATH only
#  1 = PATH and CWD
#  2 = PATH, CWD, and directories
# Changes how Clink will match executables when there is no path separator on
# the line. 0 = PATH only, 1 = PATH and CWD, 2 = PATH, CWD, and directories. In
# all cases both executables and directories are matched when there is a path
# separator present. A value of -1 will disable executable matching completely.
exec_match_style = 2

# name: Whitespace prefix matches files
# type: bool
# If the line begins with whitespace then Clink bypasses executable matching and
# will match all files and directories instead.
space_prefix_match_files = 1

# name: Colour of the prompt
# type: int
# Surrounds the prompt in ANSI escape codes to set the prompt's colour. Disabled
# when the value is less than 0.
prompt_colour = -1

# name: Auto-answer terminate prompt
# type: enum
#  0 = Disabled
#  1 = Answer 'Y'
#  2 = Answer 'N'
# Automatically answers cmd.exe's 'Terminate batch job (Y/N)?' prompts. 0 =
# disabled, 1 = answer 'Y', 2 = answer 'N'.
terminate_autoanswer = 0

# name: Lines of history saved to disk
# type: int
# When set to a positive integer this is the number of lines of history that
# will persist when Clink saves the command history to disk. Use 0 for infinite
# lines and <0 to disable history persistence.
history_file_lines = 10000

# name: Skip adding lines prefixed with whitespace
# type: bool
# Ignore lines that begin with whitespace when adding lines in to the history.
history_ignore_space = 0

# name: Controls how duplicate entries are handled
# type: enum
#  0 = Always add
#  1 = Ignore
#  2 = Erase previous
# If a line is a duplicate of an existing history entry Clink will erase the
# duplicate when this is set 2. A value of 1 will not add duplicates to the
# history and a value of 0 will always add lines. Note that history is not
# deduplicated when reading/writing to disk.
history_dupe_mode = 2

# name: Read/write history file each line edited
# type: bool
# When non-zero the history will be read from disk before editing a new line and
# written to disk afterwards.
history_io = 0

# name: Sets how command history expansion is applied
# type: enum
#  0 = Off
#  1 = On
#  2 = Not in single quotes
#  3 = Not in double quote
#  4 = Not in any quotes
# The '!' character in an entered line can be interpreted to introduce words
# from the history. This can be enabled and disable by setting this value to 1
# or 0. Values or 2, 3 or 4 will skip any ! character quoted in single, double,
# or both quotes respectively.
history_expand_mode = 4

# name: Support Windows' Ctrl-Alt substitute for AltGr
# type: bool
# Windows provides Ctrl-Alt as a substitute for AltGr, historically to support
# keyboards with no AltGr key. This may collide with some of Readline's
# bindings.
use_altgr_substitute = 1

# name: Strips CR and LF chars on paste
# type: enum
#  0 = Paste unchanged
#  1 = Strip
#  2 = As space
# Setting this to a value >0 will make Clink strip CR and LF characters from
# text pasted into the current line. Set this to 1 to strip all newline
# characters and 2 to replace them with a space.
strip_crlf_on_paste = 2

# name: Enables basic ANSI escape code support
# type: bool
# When printing the prompt, Clink has basic built-in support for SGR ANSI escape
# codes to control the text colours. This is automatically disabled if a third
# party tool is detected that also provides this facility. It can also be
# disabled by setting this to 0.
ansi_code_support = 1

ConEmu Version Info:

ConEmu 161206 [32] Startup Info
  OsVer: 10.0.17763.x64, Product: 1, SP: 0.0, Suite: 0x100, SM_SERVERR2: 0
  CSDVersion: , ReactOS: 0 (), Rsrv: 0
  DBCS: 0, WINE: 0, PE: 0, Remote: 0, ACP: 1252, OEMCP: 437, Admin: 0
  StartTime: 2019-01-04 19:41:25.472
  AppID: 
  Desktop: `Winsta0\Default`, SessionId: 1, ConsoleSessionId: 1
  Title: `ConEmu  -?`
  Size: {0,1},{100,100}
  Flags: 0x00000000, ShowWindow: 1, ConHWnd: 0x00000000
  char: 1, short: 2, int: 4, long: 4, u64: 8
  Handles: 0x00000000, 0x00000000, 0x00000000
  Current PID: 7588, TID: 15944
  Active HKL: 0x04090409
  GetKeyboardLayoutList: 0x04090409
CmdLine: ConEmu  -?
ExecMod: C:\tools\Cmder\vendor\conemu-maximus5\ConEmu.exe
WorkDir: C:\tools\Cmder\vendor\conemu-maximus5
PathEnv: C:\ProgramData\DockerDesktop\version-bin;C:\Program Files\Docker\Docker\Resources\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\WINDOWS\System32\OpenSSH\;C:\ProgramData\chocolatey\bin;C:\Program Files\Git\cmd;C:\Program Files\dotnet\;C:\Program Files\Microsoft SQL Server\130\Tools\Binn\;C:\tools;C:\Program Files (x86)\Microsoft SQL Server\Client SDK\ODBC\130\Tools\Binn\;C:\Program Files (x86)\Microsoft SQL Server\140\Tools\Binn\;C:\Program Files (x86)\Microsoft SQL Server\140\DTS\Binn\;C:\Program Files (x86)\Microsoft SQL Server\140\Tools\Binn\ManagementStudio\;C:\Program Files\Microsoft Service Fabric\bin\Fabric\Fabric.Code;C:\Program Files\Microsoft SDKs\Service Fabric\Tools\ServiceFabricLocalClusterManager;C:\Users\michael.christensen\AppData\Local\Microsoft\WindowsApps;C:\tools\Cmder;
ConFont: 0  Lucida Console  00  Consolas
CMD's AutoRuns: {not defined}
Foreground: x001F0BA4 {160,160}-{1279,807} 'ConsoleWindowClass' - C:\WINDOWS\system32\cmd.exe
MouseCursor: {246,744} MouseMonitor: 003C07AD StartMonitor: 00000000
Display: bpp=32, planes=1, align=1, vrefr=60, shade=x00000000, rast=x00007E99, dpi=120x120, per-mon-dpi=1
Monitors (dpi: WholeDesktop, Effective, Angular, RAW):
  003C07AD: {0,0}-{1920,1080} (1920x1080), Working: {0,0}-{1920,1030} (1920x1030), dpi: {120,120};{120,120};{137,137};{157,157} `\\.\DISPLAY1` <<== Primary
Modules:
  00400000-00611FFF   212000 C:\tools\Cmder\vendor\conemu-maximus5\ConEmu.exe
  771B0000-7734BFFF   19C000 C:\WINDOWS\SYSTEM32\ntdll.dll
  75510000-755EFFFF    E0000 C:\WINDOWS\System32\KERNEL32.DLL
  75A10000-75C08FFF   1F9000 C:\WINDOWS\System32\KERNELBASE.dll
  75870000-75A08FFF   199000 C:\WINDOWS\System32\USER32.dll
  74850000-74866FFF    17000 C:\WINDOWS\System32\win32u.dll
  74870000-74892FFF    23000 C:\WINDOWS\System32\GDI32.dll
  76CA0000-76E06FFF   167000 C:\WINDOWS\System32\gdi32full.dll
  76B10000-76B8FFFF    80000 C:\WINDOWS\System32\msvcp_win.dll
  75070000-75192FFF   123000 C:\WINDOWS\System32\ucrtbase.dll
  76C20000-76C9DFFF    7E000 C:\WINDOWS\System32\ADVAPI32.dll
  75270000-7532FFFF    C0000 C:\WINDOWS\System32\msvcrt.dll
  76E60000-76ED8FFF    79000 C:\WINDOWS\System32\sechost.dll
  76EE0000-76F9EFFF    BF000 C:\WINDOWS\System32\RPCRT4.dll
  74820000-7483FFFF    20000 C:\WINDOWS\System32\SspiCli.dll
  74810000-74819FFF     A000 C:\WINDOWS\System32\CRYPTBASE.dll
  75480000-754E1FFF    62000 C:\WINDOWS\System32\bcryptPrimitives.dll
  75C10000-7615CFFF   54D000 C:\WINDOWS\System32\SHELL32.dll
  76850000-7688AFFF    3B000 C:\WINDOWS\System32\cfgmgr32.dll
  76760000-767E8FFF    89000 C:\WINDOWS\System32\shcore.dll
  755F0000-75867FFF   278000 C:\WINDOWS\System32\combase.dll
  76160000-7675AFFF   5FB000 C:\WINDOWS\System32\windows.storage.dll
  754F0000-7550BFFF    1C000 C:\WINDOWS\System32\profapi.dll
  75420000-75473FFF    54000 C:\WINDOWS\System32\powrprof.dll
  76800000-76843FFF    44000 C:\WINDOWS\System32\shlwapi.dll
  74A10000-74A1EFFF     F000 C:\WINDOWS\System32\kernel.appcore.dll
  74F10000-74F21FFF    12000 C:\WINDOWS\System32\cryptsp.dll
  76A10000-76B09FFF    FA000 C:\WINDOWS\System32\COMDLG32.dll
  76900000-769FBFFF    FC000 C:\WINDOWS\System32\ole32.dll
  73C60000-73C67FFF     8000 C:\WINDOWS\SYSTEM32\VERSION.dll
  74A20000-74ABAFFF    9B000 C:\WINDOWS\System32\OLEAUT32.dll
  70FB0000-711BEFFF   20F000 C:\WINDOWS\WinSxS\x86_microsoft.windows.common-controls_6595b64144ccf1df_6.0.17763.195_none_4d616d831b9c5e9f\COMCTL32.dll
  73330000-73353FFF    24000 C:\WINDOWS\SYSTEM32\WINMM.dll
  73D60000-73D72FFF    13000 C:\WINDOWS\SYSTEM32\NETAPI32.dll
  73300000-73322FFF    23000 C:\WINDOWS\SYSTEM32\WINMMBASE.dll
  73D50000-73D5AFFF     B000 C:\WINDOWS\SYSTEM32\NETUTILS.DLL
  73760000-73774FFF    15000 C:\WINDOWS\SYSTEM32\SAMCLI.DLL
  76E10000-76E34FFF    25000 C:\WINDOWS\System32\IMM32.DLL
  70B90000-70C0AFFF    7B000 C:\WINDOWS\system32\uxtheme.dll
  70330000-70355FFF    26000 C:\WINDOWS\SYSTEM32\dwmapi.dll
  76FA0000-77138FFF   199000 C:\WINDOWS\System32\CRYPT32.dll
  767F0000-767FDFFF     E000 C:\WINDOWS\System32\MSASN1.dll
windows
windows-10
powershell
unicode
cmder
asked on Super User Jan 4, 2019 by Mike Christensen • edited Jan 5, 2019 by Mike Christensen

0 Answers

Nobody has answered this question yet.


User contributions licensed under CC BY-SA 3.0