我正在Java Spring Batch中逐字节地读取UTF_8编码的文件并将内容保存在mongodb中。读取被委托给FlatFileItemReader,编码以UTF-8的形式注入到bean中。
我所看到的是,只有在一个或两个特定的地方,变音字符才会被存储在mongodb中的编码问题。我确认原始文件中的内容没问题。有趣的是,在其他任何地方,原始文件中的变音符号都被正确解释并正确存储在mongodb中。
你能帮忙吗?
~/test.txt
FieldSetMapper
<bean id="recordReader" class="org.springframework.batch.item.file.FlatFileItemReader" scope="step">
<property name="resource" value="file:#{jobExecutionContext['inputfile']}" />
<property name="linesToSkip" value = "1" />
<property name= "encoding" value ="UTF-8"/>
<property name="lineMapper">
<bean class="org.springframework.batch.item.file.mapping.DefaultLineMapper" >
<property name = "lineTokenizer">
<bean class = "com.xyz.NoQuoteDelimitedLineTokenizer">
<property name = "strict" value = "false" />
<property name = "names" value = "Col1,Col2,Col3,Col4,Col5,Col6,Col7,Col8" />
<property name="delimiter">
<util:constant static-field="org.springframework.batch.item.file.transform.DelimitedLineTokenizer.DELIMITER_TAB" />
</property>
</bean>
</property>
<property name = "fieldSetMapper">
<bean class = "com.xyz.MyFieldSetMapper" >
<property name = "ctx" value="#{jobExecutionContext['contextBean']}"/>
</bean>
</property>
</bean>
</property>
</bean>