V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  chinaguaiu  ›  全部回复第 5 页 / 共 10 页
回复总数  198
1  2  3  4  5  6  7  8  9  10  
先说结论:charset 字段不对 application/json 类型的媒体内容生效,无论你怎么设置 charset ,框架都只会使用 utf-8 对字符串进行编码。charset 字段只用于 text/* 类型的媒体内容生效,也就是文本内容; application/*类型的数据在规范上属于二进制数据,不应受 charset 制约(框架和浏览器会直接忽略 charset )。

如果一定要用 GBK 传输数据,不要给 Spring 框架返回 Collection 例如 Map 类型,而是直接返回 String 类型。无论是返回哪种类型都不需要你手动进行编码了,框架会自动处理的。

// @RestController 注解会自动将 map 转化为 json 并使用 utf-8 编码
// http 响应的媒体类型为 application/json
@GetMapping("/hello-json")
public Map sayHelloByJSON() {
Map map = new HashMap<String, String>();
map.put("你好", "世界");
return map;
}

// 按照指定的编码传输文本数据
// http 响应的媒体类型为 text/*,具体类型要看框架的处理
@GetMapping("/hello-gbk")
public String sayHelloByGbkString() {
return "你好,世界。";
}


-------
1. charset 字段对 text/*文本类型的影响,见: https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Basics_of_HTTP/MIME_types
"例如,对于主类型为 text 的任何 MIME 类型,可以添加可选的 charset 参数,以指定数据中的字符所使用的字符集"

2. JSON 文件(文本)应该使用 applicaiton/json 媒体类型进行描述,见: https://www.iana.org/assignments/media-types/media-types.xhtml 。使用 text/*类型描述 json 文本被认为是违反规范的。

3. applicaiton/json 类型的数据不应受 charset 字段影响,见: https://datatracker.ietf.org/doc/html/rfc6838#section-4.2.1
该段有提到两点:
( 1 ). 包含“payload”的文本类型不应该使用 charset 字段,而应该由本身的规范指定(例如 xml 文件内部有编码集指定字段, 而 JSON 文件唯一指定为 utf-8 , 见 https://www.rfc-editor.org/rfc/rfc8259.html ),它们不应该受 charset 字段影响(直接忽略 charset,无论 charset 是否存在)
( 2 ). 如果一定要使用一种默认编码,使用“UTF-8”。
application/json 数据其实算是二进制数据,但是可以认为是上文所说"包含`payload`的文本类型".
------


嘛,应该挺多人对 json 数据胡乱进行处理的,乱码嘛,正常。
op 有兴趣的话可以看看这个讨论: https://github.com/libwww-perl/HTTP-Message/pull/90
讨论核心就是应该如何看待并处理 http 请求中的 json 类型"文本"(从浏览器和框架的角度)。对本问有一定的参考意义。
支持。
---
"基于 drawio 开发", 这个插件是离线可用的吗?
听说洗烘一体不是很实用。op 对烘干衣物有强烈需求吗?
2024-02-07 10:18:50 +08:00
回复了 pianjiao 创建的主题 职场话题 还在上班的举手🙋‍♂️
今天的地铁空落落~
2024-02-06 17:41:07 +08:00
回复了 Dorathea 创建的主题 科技 一件小事突然让我有点感慨
@murmur #10 你说的这些问题毕竟是一些娱乐向的问题...拿 gpt 来跑这些内容其实和跑哲学问题也没有区别。gpt 此时的作用可以类比为一个"思维沙盘",到最后实际上就是你自己说服自己罢了...
2024-02-06 17:36:14 +08:00
回复了 Dorathea 创建的主题 科技 一件小事突然让我有点感慨
@Dorathea #8 懂你意思了。某些科技发展确实会带给人一些心态上的改变,尤其是从业人员。gpt 这个东西暂时对现实生活的影响我感觉还不是很大,毕竟它就只是个生成式 ai ,是被动地生产内容的,现在还是程序员用的多,有点"春江水暖鸭先知"的意思。

实际上目前市场发展的趋势是其它类型的 AI 数量会比生成式 AI 多很多,见: [吴恩达 2023 斯坦福最新演讲:AI 新机遇-哔哩哔哩] https://b23.tv/rvQ1aVx 在视频两分钟左右有提到。

其它类型的 AI 可能对现实生活的影响会首先到来。例如说语音 AI ,最近接的推销广告的电话很多都是机器人给我打来的了,让我对推销电话更加厌恶了。
2024-02-06 16:08:17 +08:00
回复了 Dorathea 创建的主题 科技 一件小事突然让我有点感慨
@timewarp 论深度论广度没人比得过他
<<<
神话太过了
2024-02-06 16:07:46 +08:00
回复了 Dorathea 创建的主题 科技 一件小事突然让我有点感慨
https://i.imgur.com/U3hKhrT.png 你刷 leetcode 的最终目的在哪里呢?如果是为了面试八股文,那么 gpt 没有用;如果是锻炼个人能力,那么 gpt 也没有用。

如果是为了解决实际问题,那么你不需要上 leetcode 。
@AtlantisZ #6
其实也可以委托中介帮忙转租,但是希望也不大,因为佣金不高。

<<<
😰我和中介聊过,他说这个价位给开发商或者商业二房东推广能拿更高的佣金(不知道他们是怎么算钱的),所以中介一般来说是不会优先帮你推广房子的。比如说你的房间在一所公寓,你隔壁是同公寓的一间空房,那么中介会优先带人去隔壁的空房子看,因为开发商许诺了更高的佣金。
@AtlantisZ #4 只是一个宣传途径而已,小红书和抖音展示房子信息也比较直观友好。其实也可以委托中介帮忙转租,但是希望也不大,因为佣金不高。
这个价格转租的希望不大,楼主其实可以考虑不要押金直接跑了。或者发发小红书或抖音看看。
2024-02-04 09:33:27 +08:00
回复了 Lyn321 创建的主题 职场话题 都陆续放假了,我还要连上四天,要吐了。。。。
🤣朋友都在老家玩了一个星期了我才能回家
2024-02-02 10:54:00 +08:00
回复了 gtheone1 创建的主题 生活 南方太潮湿了,有没有低成本的除湿办法
如果楼主住的地方是楼上说的一年湿几天这种建议忍忍就过去了,不需要除湿机;如果楼主在两广住的楼层还低的话也算了,一年要湿好几个月🤣🤣🤣,忍忍就习惯了。
2024-02-02 10:51:21 +08:00
回复了 gtheone1 创建的主题 生活 南方太潮湿了,有没有低成本的除湿办法
@kulous 🤣两广的回南天一年几个月
2024-02-02 09:12:15 +08:00
回复了 tallie 创建的主题 职场话题 各位还要上几天班?
上到 7 号,过年时间太赶了,我 8 号要花一整天的时间回家
2024-02-01 12:02:01 +08:00
回复了 u21t20o15 创建的主题 广州 有什么办法对付二手房东?
@j4fun 这话说的太傲慢了。
1  2  3  4  5  6  7  8  9  10  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2873 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 29ms · UTC 13:04 · PVG 21:04 · LAX 05:04 · JFK 08:04
Developed with CodeLauncher
♥ Do have faith in what you're doing.