fix: UTF-8-Encoding gehärtet (SSE-Reader + CLI-Workspace)
- AnthropicService.Streaming.cs + OpenAiService.cs: SSE-StreamReader nutzt jetzt expliziten UTF-8-Encoder mit 16-KB-Buffer (statt default 1 KB) und ohne BOM-Detection. Verhindert intermittierende Replacement-Chars (�), die entstehen können, wenn Multi-Byte-UTF-8-Sequenzen ungünstig über die Read-Boundary eines NetworkStreams gesplittet werden. - ClaudeCliService.cs: cmd.exe-Wrapper jetzt mit /D (AutoRun-Skripte aus Registry deaktivieren) und WorkingDirectory wird auf den Session-Workspace gesetzt. Vorher erbte der Child-Prozess das CWD von gott (bei Windows- Diensten C:\WINDOWS\system32). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
1 parent
32aad7feef
commit
bfd550e090
3 files changed
+36
-6
No files matched your search
@@ -337,7 +337,16 @@ public class OpenAiService
|
||||
|
||||
// SSE-Stream lesen
|
||||
using var stream = await httpResp.Content.ReadAsStreamAsync(workCt);
|
||||
using var reader = new System.IO.StreamReader(stream);
|
||||
// Explizit UTF-8 ohne BOM-Detection, größerer Buffer (16 KB statt default 1024).
|
||||
// Verhindert intermittierende Replacement-Chars (�) für Multi-Byte-Sequenzen,
|
||||
// die entstehen können, wenn UTF-8-Bytes über die Read-Boundary eines
|
||||
// NetworkStreams gesplittet werden und der Decoder bei kleinem Buffer State verliert.
|
||||
using var reader = new System.IO.StreamReader(
|
||||
stream,
|
||||
encoding: new System.Text.UTF8Encoding(encoderShouldEmitUTF8Identifier: false, throwOnInvalidBytes: false),
|
||||
detectEncodingFromByteOrderMarks: false,
|
||||
bufferSize: 16384,
|
||||
leaveOpen: false);
|
||||
|
||||
var fullText = new StringBuilder();
|
||||
var thinkingText = new StringBuilder();
|
||||
|
||||
Reference in new issue
Block a user