PSReadLine icon indicating copy to clipboard operation
PSReadLine copied to clipboard

EncoderFallbackException: Unable to translate Unicode character

Open ms-Fivano opened this issue 1 month ago • 0 comments

Prerequisites

  • [x] Write a descriptive title.
  • [x] Make sure you are able to repro it on the latest released version
  • [x] Search the existing issues, especially the pinned issues.

Exception report

PS C:\Users\x> ✓ ✔ �

Oops, something went wrong.
Please report this bug with ALL the details below, including both the 'Environment' and 'Exception' sections.
Please report on GitHub: https://github.com/PowerShell/PSReadLine/issues/new?template=Bug_Report.yaml
Thank you!

### Environment
PSReadLine: 2.3.6+d2e770f93b7a53d8660a6402eb29d1ae1c35e767
PowerShell: 7.5.4
OS: Microsoft Windows 10.0.26200
BufferWidth: 378
BufferHeight: 70

Last 37 Keys:

 ✓ Spacebar ✔ Spacebar � � LeftArrow End Delete RightArrow LeftArrow Delete Enter
 Ctrl+Backspace Backspace Backspace Backspace Ctrl+Backspace Ctrl+Backspace Ctrl+Backspace Ctrl+Backspace RightArrow RightArrow Backspace c l s Enter
 ✓ Spacebar ✔ Spacebar � � LeftArrow Delete Enter


### Exception

System.Text.EncoderFallbackException: Unable to translate Unicode character \\uD83D at index 4 to specified code page.
   at System.Text.EncoderExceptionFallbackBuffer.Fallback(Char charUnknown, Int32 index)
   at System.Text.Encoding.GetBytesWithFallback(ReadOnlySpan`1 chars, Int32 originalCharsLength, Span`1 bytes, Int32 originalBytesLength, EncoderNLS encoder, Boolean throwForDestinationOverflow)
   at System.Text.Encoding.GetBytesWithFallback(Char* pOriginalChars, Int32 originalCharCount, Byte* pOriginalBytes, Int32 originalByteCount, Int32 charsConsumedSoFar, Int32 bytesWrittenSoFar, EncoderNLS encoder)
   at System.IO.StreamWriter.Flush(Boolean flushStream, Boolean flushEncoder)
   at System.IO.StreamWriter.Dispose(Boolean disposing)
   at System.IO.TextWriter.Dispose()
   at Microsoft.PowerShell.PSConsoleReadLine.<>c__DisplayClass103_0.<WriteHistoryRange>b__0()
   at Microsoft.PowerShell.PSConsoleReadLine.<>c__DisplayClass103_0.<WriteHistoryRange>b__0()
   at Microsoft.PowerShell.PSConsoleReadLine.WithHistoryFileMutexDo(Int32 timeout, Action action)
   at Microsoft.PowerShell.PSConsoleReadLine.WriteHistoryRange(Int32 start, Int32 end, Boolean overwritten)
   at Microsoft.PowerShell.PSConsoleReadLine.IncrementalHistoryWrite()
   at Microsoft.PowerShell.PSConsoleReadLine.MaybeAddToHistory(String result, List`1 edits, Int32 undoEditIndex, Boolean fromDifferentSession, Boolean fromInitialRead)
   at Microsoft.PowerShell.PSConsoleReadLine.InputLoop()
   at Microsoft.PowerShell.PSConsoleReadLine.ReadLine(Runspace runspace, EngineIntrinsics engineIntrinsics, CancellationToken cancellationToken, Nullable`1 lastRunStatus)


PS C:\Users\x> ✓ ✔ �

Screenshot

Pasting: PS C:\Users\x> ✓ ✔ 🗸 Actually pastes: PS C:\Users\x> ✓ ✔ 🗸� So performing the above mentioned steps will result in the given error. Visual Example of input:

Image

PS C:\Users\x> ✓ ✔ 🗸|�

Environment data

PS Version: 7.5.4
PS HostName: ConsoleHost (Windows Terminal)
PSReadLine Version: 2.3.6
PSReadLine EditMode: Windows
OS: 10.0.26100.1 (WinBuild.160101.0800)
BufferWidth: 340
BufferHeight: 67

Steps to reproduce

Pasting: PS C:\Users\x> ✓ ✔ 🗸 Actually pastes: PS C:\Users\x> ✓ ✔ 🗸� So performing the above mentioned steps will result in the given error. Visual Example of input: Paste: Image Press [Left arrow key]: Image Press [delete]: Image Press [enter]: Image

Expected behavior

Terminal should show:

PS C:\Users\x> ✓ ✔ 🗸 PS C:\Users\x> ✓ ✔ -> Where the last chracter is deleted

Actual behavior

Terminal shows:

PS C:\Users\x> ✓ ✔ 🗸\ PS C:\Users\x> ✓ ✔ �� -> Where the last chracter is deleted

Image

ms-Fivano avatar Dec 16 '25 11:12 ms-Fivano