Netsuite nlobjFile.getValue在Suitelet中不起作用

Netsuite nlobjFile.getValue在Suitelet中不起作用,netsuite,Netsuite,我在NetSuite Suitelet中使用了以下代码来上载和处理文件: function main(request,response){ if (request.getMethod() == 'GET'){ var form = nlapiCreateForm('Item Import Correction', false); var fileField = form.addField('custpage_file', 'file', 'Sele

我在NetSuite Suitelet中使用了以下代码来上载和处理文件:

function main(request,response){
    if (request.getMethod() == 'GET'){
        var form = nlapiCreateForm('Item Import Correction', false);    
        var fileField = form.addField('custpage_file', 'file', 'Select CSV');                
        form.addSubmitButton();        
        response.writePage(form);        
    }else{
        try{
            var file = request.getFile("custpage_file");
            var content = file.getValue();//exception
            response.write(content);
        }catch(ex){
            response.write('Exception:'+ex);
        }
    }    
}
当我选择一个文件并提交它时,调用
nlobjFile
上的
getValue()
会出现异常。以下是响应的输出:

Exception:JavaException: java.lang.NullPointerException: charsetName
但是,我将
getValue()
调用替换为同一对象的其他方法,如
getSize()
getType()
,代码运行良好

我只想解析用户在Suitelet中选择的文件

getFile()-返回通过nlobjForm.addField(名称、类型、标签、sourceOrRadio、选项卡)方法添加的文件。添加文件字段类型时,您将设置“file”的类型参数


确保使用getFile()引用的字段确实存在于表单中。

nlobjFile
上调用
setEncoding()
方法为我解决了问题。我用的是中文编码,所以这是适合我的代码

var file = request.getFile("custpage_file");
file.setEncoding('GB18030');// Chinese
var content = file.getValue();//no exception

检查过这些东西。一切就绪。似乎是一个编码问题。