在Grails3中,ASCII字符被转换(附加)为任意字符

在Grails3中,ASCII字符被转换(附加)为任意字符,grails,configuration,ascii,Grails,Configuration,Ascii,我在grails 3应用程序中提交了一个值“02AP0040”,当表单通过ajax提交时,控制器中的值不会改变,但当表单正常提交时,该值会更改为“02AP0040””。我已将application.yml中的mime类型,form:application/x-www-form-urlencoded更改为form:multipart/form data配置文件(application.yml)的一部分如下: grails: applicationVersion: '@info.app.versio

我在grails 3应用程序中提交了一个值“02AP0040”,当表单通过ajax提交时,控制器中的值不会改变,但当表单正常提交时,该值会更改为“02AP0040”。我已将application.yml中的mime类型,form:application/x-www-form-urlencoded更改为form:multipart/form data配置文件(application.yml)的一部分如下:

grails:
applicationVersion: '@info.app.version@'
mime:
    disable:
        accept:
            header:
                userAgents:
                    - Gecko
                    - WebKit
                    - Presto
                    - Trident
    types:
        all: '*/*'
        atom: application/atom+xml
        css: text/css
        csv: text/csv
        form: multipart/form-data
        html:
          - text/html
          - application/xhtml+xml
        js: text/javascript
        json:
          - application/json
          - text/json
        multipartForm: multipart/form-data
        pdf: application/pdf
        rss: application/rss+xml
        text: text/plain
        hal:
          - application/hal+json
          - application/hal+xml
        xml:
          - text/xml
          - application/xml
    file.extensions: true
    use.accept.header: false
urlmapping:
    cache:
        maxsize: 1000
controllers:
    upload:
        maxFileSize: 2097152 #2MB
        maxRequestSize: 2097152 #2MB
    defaultScope: prototype
converters:
    encoding: UTF-8
views:
    default:
        codec: none
    gsp:
        encoding: UTF-8
        htmlcodec: xml
        codecs:
            expression: none
            scriptlets: html
            taglib: none
            staticparts: none

提交表单也向控制器提交了正确的值,但当涉及到控制器时,该值被更改。

我发现一个解决方案可能不是完美的,但解决了我的问题

我已将enctype属性添加到每个提交此类ascii字符的表单中,如
。我试图更改application.yml中的mime类型,但没有成功,所以我在主页中使用javascript将enctype添加到当前解决该问题的每个表单中

我发现,即使方法是post,默认的表单enctype是application/x-www-form-urlencoded,它将请求主体视为查询参数,因此对ascii字符进行编码/转义,因此为了传输此类字符,我们必须将enctype用作不编码内容的多部分/表单数据