如何修复 £ 符号前的特殊字符 - 399 英镑 - Spring Boot json
Posted
技术标签:
【中文标题】如何修复 £ 符号前的特殊字符 - 399 英镑 - Spring Boot json【英文标题】:How to fix special character before £ sign - £399 - Spring boot json 【发布时间】:2021-11-28 19:28:03 【问题描述】:我使用 Angular-spring boot 应用程序创建数据。从表单写入文件时,我使用 belwo UTF_8 编码 //java 11
FileWriter writer = new FileWriter(Paths.get(activityFile.getRef()).toFile(), StandardCharsets.UTF_8);
文件在记事本中看起来没问题 - 没有特殊字符等
但我使用该文件加载到数据库,但我发现了问题。
//java 8
try (FileReader reader = new FileReader(queFile))
List<QuackDTO> qDTOs = objectMapper.readValue(reader, new TypeReference<List<QuackDTO>>());
如果我在其中一个属性中看到它在 £ 之前添加的值 - 比如 £100
因为我想要一个对象列表,所以我没有做类似的字符串
Files.readString(path, StandardCharsets.UTF_8);
如何解决我的编码问题?
我在哪里看到问题?
文件 -> VO 列表 -> 每个 VO -> 转换为实体类型。我已经看到属性具有不需要的字符 Â
编辑:
DB 是 mysql ,但我什至在创建实体对象之前就看到了特殊字符
SELECT default_character_set_name FROM information_schema.SCHEMATA WHERE schema_name = "mysch";
utf8mb4
【问题讨论】:
您使用的是什么数据库?请将其标签添加到您的问题中。您为数据库和/或列指定了什么编码? @Bohemian 添加了数据库。我使用 CloudSQL 进行生产 使用代码修复 - try (Reader reader = new InputStreamReader(new FileInputStream(questionsFile), "UTF-8")) 如果您有解决方案,请将其作为答案发布。 【参考方案1】:我更新了要使用的代码 - 带有 UTF-8 编码的 InputStreamReader
try (Reader reader = new InputStreamReader(new FileInputStream(questionsFile), "UTF-8"))
List<QuackDTO> qDTOs = objectMapper.readValue(reader, new TypeReference<List<QuackDTO>>());
【讨论】:
以上是关于如何修复 £ 符号前的特殊字符 - 399 英镑 - Spring Boot json的主要内容,如果未能解决你的问题,请参考以下文章