Skip to content

Commit d3a5b07

Browse files
committed
fix: add GBK-to-UTF-8 encoding conversion for .sql/.txt/.java in GetSQLFromFile
The input_sql_file branch in GetSQLFromFile() was passing raw bytes from controller.ReadFile() directly without encoding conversion. When a GBK-encoded file was uploaded, the raw GBK bytes were stored into MySQL UTF-8 columns, causing Error 1366 (Incorrect string value). Added utils.ConvertToUtf8() calls for .sql/.txt and .java branches, consistent with processArchiveEntry() which already handles encoding conversion for files inside archives. Fixes: BUG-001
1 parent bb3f407 commit d3a5b07

1 file changed

Lines changed: 12 additions & 4 deletions

File tree

sqle/api/controller/v1/task.go

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -127,16 +127,24 @@ func GetSQLFromFile(c echo.Context) (GetSQLFromFileResp, error) {
127127
ext := strings.ToLower(filepath.Ext(fileName))
128128
switch ext {
129129
case ".sql", ".txt":
130-
// .sql and .txt: use original logic (read content directly)
130+
// .sql and .txt: convert encoding to UTF-8 before use
131+
utf8Content, err := utils.ConvertToUtf8([]byte(sqlsFromSQLFile))
132+
if err != nil {
133+
return GetSQLFromFileResp{}, errors.New(errors.DataConflict, err)
134+
}
131135
return GetSQLFromFileResp{
132136
SourceType: model.TaskSQLSourceFromSQLFile,
133137
SQLsFromSQLFiles: []SQLsFromSQLFile{{
134138
FilePath: fileName,
135-
SQLs: sqlsFromSQLFile}},
139+
SQLs: string(utf8Content)}},
136140
}, nil
137141
case ".java":
138-
// .java: extract SQL statements from Java source code
139-
sqls, err := getSqlFromJavaContent(sqlsFromSQLFile)
142+
// .java: convert encoding to UTF-8, then extract SQL statements from Java source code
143+
utf8Content, err := utils.ConvertToUtf8([]byte(sqlsFromSQLFile))
144+
if err != nil {
145+
return GetSQLFromFileResp{}, errors.New(errors.DataConflict, err)
146+
}
147+
sqls, err := getSqlFromJavaContent(string(utf8Content))
140148
if err != nil {
141149
return GetSQLFromFileResp{}, errors.New(errors.DataConflict, err)
142150
}

0 commit comments

Comments
 (0)