R Shiny应用本地正常但部署后报错,求排查方案
ShinyApps.io部署错误排查:时区与编码问题分析
翻译后的部署日志警告
1: 在as.POSIXlt.POSIXct(x, tz = tz)中:
无法识别当前时区'H',请设置环境变量'TZ'
2: 检测区域设置时出错:make.names(col.names, unique = TRUE)中出错:无效的多字节字符串3
(已使用默认值:en_US)
可能的错误原因
- 时区未正确配置:本地运行时R会自动读取系统时区,但ShinyApps.io服务器环境无法识别你当前的时区设置'H',时间相关代码执行失败,直接引发应用报错。
- 多字节字符解析失败:应用中存在非英文的多字节字符(比如列名、文本内容),服务器默认使用
en_US区域设置,无法正确解析这些字符,触发编码类错误。
解决方案
- 指定明确时区:在应用代码最开头添加时区设置,替换为你实际需要的时区:
可通过Sys.setenv(TZ = "America/New_York")OlsonNames()命令查看所有可用的时区列表。 - 配置匹配的区域编码:
- 在应用开头强制设置对应区域的UTF-8编码,比如西班牙语环境:
Sys.setlocale(category = "LC_ALL", locale = "es_ES.UTF-8") - 检查应用内所有字符型数据(列名、静态文本、输出内容),确保统一使用UTF-8编码,避免出现无效多字节字符串。
- 在应用开头强制设置对应区域的UTF-8编码,比如西班牙语环境:
内容的提问来源于stack exchange,提问作者Humberto R
相关产品推荐
相关产品推荐

