Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Throw exception when I use emoji. #3889

Closed
3 tasks done
Namacha411 opened this issue Dec 1, 2023 · 2 comments
Closed
3 tasks done

Throw exception when I use emoji. #3889

Namacha411 opened this issue Dec 1, 2023 · 2 comments
Labels
Resolution-Duplicate There's another issue on the tracker that's pretty much the same thing.

Comments

@Namacha411
Copy link

Prerequisites

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

Exception report

### Environment
PSReadLine: 2.3.4
PowerShell: 7.4.0
OS: Microsoft Windows 10.0.22635
BufferWidth: 197
BufferHeight: 13

Last 175 Keys:

 d j a n g o Spacebar Backspace Backspace Backspace Backspace Backspace Backspace Backspace Backspace Backspace Backspace Backspace Backspace Backspace Backspace Backspace p y t h o n Spacebar DownArrow Backspace Backspace Backspace Backspace Backspace Backspace Backspace Backspace Backspace Backspace Backspace y Spacebar m i g r a t e Enter
 UpArrow DownArrow UpArrow Enter
 UpArrow Enter
 UpArrow Backspace Backspace Backspace Backspace Backspace Backspace Backspace m a k e m i g r a t i o n s Enter
 UpArrow UpArrow Enter
 UpArrow Backspace Backspace Backspace Backspace Backspace Backspace Backspace r DownArrow Enter
 UpArrow UpArrow UpArrow DownArrow Enter
 UpArrow UpArrow UpArrow Enter
 UpArrow UpArrow Enter
 UpArrow UpArrow UpArrow Enter
 UpArrow Enter
 UpArrow Enter
 UpArrow Enter
 UpArrow Enter
 g i t Spacebar i n i t Spacebar . Enter
 g i t Spacebar a d d Spacebar . Enter
 g i t Spacebar c o m m m m Backspace Backspace i t Spacebar - m Spacebar " � " LeftArrow Backspace � � Backspace RightArrow LeftArrow Backspace Backspace RightArrow Backspace " � " Enter


### Exception

System.Text.EncoderFallbackException: Unable to translate Unicode character \\uD83C at index 15 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.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)

Screenshot

N/A

Environment data

PS Version: 7.4.0
PS HostName: ConsoleHost
PSReadLine Version: 2.3.4
PSReadLine EditMode: Vi
OS: 10.0.22621.2428 (WinBuild.160101.0800)
BufferWidth: 197
BufferHeight: 13

Steps to reproduce

Run git commit -m "�" in vscode terminal.
To insert the emoji 🎉 in vscode, press the Windows key and the period key simultaneously.

Expected behavior

execute git commit -m "🎉".

Actual behavior

Throw exception.

@microsoft-github-policy-service microsoft-github-policy-service bot added the Needs-Triage 🔍 It's a new issue that core contributor team needs to triage. label Dec 1, 2023
@daxian-dbw
Copy link
Member

Close as a duplicate of #1329

@microsoft-github-policy-service microsoft-github-policy-service bot removed the Needs-Triage 🔍 It's a new issue that core contributor team needs to triage. label Dec 4, 2023
@daxian-dbw daxian-dbw added the Resolution-Duplicate There's another issue on the tracker that's pretty much the same thing. label Dec 4, 2023
@daxian-dbw
Copy link
Member

This is a duplicate of #3832 and is actually an issue with the older version of conpty that ships with Windows -- the � shown in VSCode terminal was because only the high surrogate of the surrogate pair that represents the emoji was pasted into the read-line buffer, due to the older version of conpty not handling it correctly.

See #3832 (comment) and the replying comment from Tyriar for details.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Resolution-Duplicate There's another issue on the tracker that's pretty much the same thing.
Projects
None yet
Development

No branches or pull requests

3 participants