Encoding::UndefinedConversionError - "\xC2" from ASCII-8BIT to UTF-8每次我尝试将哈希转换为JSON字符串时,我都会继续获取.我试着用[.encode | .force_encoding](["UTF-8" | "ASCII-8BIT" ]),链.encode带.force_encoding,向后切换参数,但似乎没有任何工作,所以我抓住了错误是这样的:
begin
menu.to_json
rescue Encoding::UndefinedConversionError
puts $!.error_char.dump
p $!.error_char.encoding
end
Run Code Online (Sandbox Code Playgroud)
菜单是续集的dataset.to_hash,内容来自MySQL DB,utf8_general_ci编码并返回:
"\ XC2"
<#Encoding:ASCII-8BIT>
无论我.encode/ .force_encoding我使用什么,编码都不会改变.我甚至试图在.gsub!(/\\\xC2/)没有运气的情况下更换琴弦.
有任何想法吗?
我想设置一个内部使用的gitlab实例.由于实例只能通过本地网络访问,因此我没有设置电子邮件设置.不幸的是,gitlab仍然希望使用临时密码向新用户发送确认电子邮件,但他们从未收到此电子邮件.
有没有办法配置gitlab,以便它不发送这些确认邮件?我已经尝试过email_enabled: false,gitlab.yml但它没有用.
更新:
它应该工作,我不必在注册过程中手动干涉.
我正在尝试在AWS lambda中运行git来检查存储库.
这是我的设置:
- >
process.env['PATH'] = process.env['LAMBDA_TASK_ROOT'] + "/bin:" + process.env['PATH'];
Run Code Online (Sandbox Code Playgroud)
输入变量设置如下:
"checkout_url": "git@...",
"branch":"master
Run Code Online (Sandbox Code Playgroud)
现在我这样做(为了简洁起见,我混合了一些伪代码):
downloadDeploymentKeyFromS3Sync('/tmp/ssh_key');
fs.chmodSync("/tmp/ssh_key",0600);
process.env['GIT_SSH_COMMAND'] = 'ssh -o StrictHostKeyChecking=no -i /tmp/ssh_key';
execSync("git clone --depth=1 " + checkout_url + " --branch " + branch + " /tmp/checkout");
Run Code Online (Sandbox Code Playgroud)
使用lambda-local在我的本地计算机上运行它一切正常!但是当我在lambda中测试时,我得到:
warning: templates not found /usr/share/git-core/templates
PRIV_END: seteuid: Operation not permitted\r
fatal: Could not read from remote repository.
Run Code Online (Sandbox Code Playgroud)