You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在不删除\n、\t等字符的前提下将字符串转成ROT13格式?

解决ROT13转换保留特殊字符的问题
  • 核心逻辑:ROT13仅需对A-Z、a-z字母做偏移转换,所有非字母字符(包括转义字符、数字、符号)直接原样保留,完全不需要使用strip()——这个函数的作用是删除字符串首尾空白字符,和你的需求完全不相关。

  • 方法一:手动实现字符遍历处理
    写一个函数逐个检查字符,仅针对字母执行ROT13转换,其余字符直接拼接:

    def rot13_preserve_special(s):
        result = []
        for char in s:
            if 'a' <= char <= 'z':
                result.append(chr((ord(char) - ord('a') + 13) % 26 + ord('a')))
            elif 'A' <= char <= 'Z':
                result.append(chr((ord(char) - ord('A') + 13) % 26 + ord('A')))
            else:
                result.append(char)
        return ''.join(result)
    
    example_string = "\x0c\n\r\\;(ap8y+"
    output = rot13_preserve_special(example_string)
    print(repr(output))  # 输出结果:'\x0c\n\r\\;(nc8l+'
    
  • 方法二:使用Python标准库codecs(更简洁)
    标准库的rot_13编码本身就只会处理字母,自动保留所有非字母字符,直接调用即可:

    import codecs
    
    example_string = "\x0c\n\r\\;(ap8y+"
    output = codecs.encode(example_string, 'rot_13')
    print(repr(output))  # 输出结果:'\x0c\n\r\\;(nc8l+'
    

内容的提问来源于stack exchange,提问作者Vaxlt _

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 18:05:08