Skip to content

Commit d8ee639

Browse files
committed
fix
1 parent bb3f323 commit d8ee639

File tree

3 files changed

+12
-0
lines changed

3 files changed

+12
-0
lines changed

mcp-core/src/main/java/io/modelcontextprotocol/server/transport/HttpServletSseServerTransportProvider.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -387,6 +387,10 @@ protected void doPost(HttpServletRequest request, HttpServletResponse response)
387387
}
388388

389389
try {
390+
// Servlet containers (e.g. Tomcat, Undertow) default to ISO-8859-1 when no
391+
// charset is specified in the Content-Type header. JSON is always UTF-8 per
392+
// RFC 8259, so we must explicitly set the encoding before reading the body.
393+
request.setCharacterEncoding(UTF_8);
390394
BufferedReader reader = request.getReader();
391395
StringBuilder body = new StringBuilder();
392396
String line;

mcp-core/src/main/java/io/modelcontextprotocol/server/transport/HttpServletStatelessServerTransport.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -154,6 +154,10 @@ protected void doPost(HttpServletRequest request, HttpServletResponse response)
154154
}
155155

156156
try {
157+
// Servlet containers (e.g. Tomcat, Undertow) default to ISO-8859-1 when no
158+
// charset is specified in the Content-Type header. JSON is always UTF-8 per
159+
// RFC 8259, so we must explicitly set the encoding before reading the body.
160+
request.setCharacterEncoding(UTF_8);
157161
BufferedReader reader = request.getReader();
158162
StringBuilder body = new StringBuilder();
159163
String line;

mcp-core/src/main/java/io/modelcontextprotocol/server/transport/HttpServletStreamableServerTransportProvider.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -429,6 +429,10 @@ protected void doPost(HttpServletRequest request, HttpServletResponse response)
429429
McpTransportContext transportContext = this.contextExtractor.extract(request);
430430

431431
try {
432+
// Servlet containers (e.g. Tomcat, Undertow) default to ISO-8859-1 when no
433+
// charset is specified in the Content-Type header. JSON is always UTF-8 per
434+
// RFC 8259, so we must explicitly set the encoding before reading the body.
435+
request.setCharacterEncoding(UTF_8);
432436
BufferedReader reader = request.getReader();
433437
StringBuilder body = new StringBuilder();
434438
String line;

0 commit comments

Comments
 (0)