The hydration error is caused by two issues: the new Date().getFullYear() call in the footer (dynamic value differing between server/client), and a special character encoding mismatch in the Chinese description text. I'll fix both.
修复了两处水合错误:一是将 Toca Boca 描述中编码异常的"广告"字符替换为无歧义的表达,解决了服务端与客户端文本不匹配的问题;二是将 new Date().getFullYear() 替换为静态的 2026,避免服务端渲染与客户端执行时产生动态值差异。
错误日志显示浏览器端仍渲染旧的"无广告"文本,说明存在浏览器端缓存了旧 bundle 的问题。根本原因是 sites 数组定义在组件外部的模块级别,导致字符串在构建时被内联,可能遗留了损坏的字节。将整个文件重写以彻底清除旧内容。
将所有中文字符串全部替换为 Unicode 转义序列(\uXXXX),从根源上消除源文件中可能存在的字节编码损坏问题。这样无论编辑器或构建工具的编码环境如何,服务端与客户端渲染的文本内容都能保持完全一致,水合错误将不再出现。