gpt4 book ai didi

读取现有连接对象的编码

转载 作者:行者123 更新时间:2023-12-04 16:09:16 24 4
gpt4 key购买 nike

有什么方法可以获取(和设置)encoding现有连接?例如:

con <- file(tempfile(), encoding = "UTF-8")
summary(con)

摘要列出了模式以及它是否已打开,但没有列出连接使用的编码。

最佳答案

我真的不确定我是否理解你需要做什么。但假设

  • 该连接与磁盘
  • 上的现有文件有关
  • 你肯定需要从文件中读取
  • 可能想写入文件

  • 然后,如果您要强制使用 UTF-8 编码,则可以执行以下操作:
    # Hypothetical connection used by the user (file must exist on dist, hence 
    # the "w" here
    con <- file(tempfile(), open = "w", encoding = "UTF-8")

    # recup the attributes of the existing connection
    con.attr <- summary(con)

    # build a list of parameters for a new connection that would replace
    # the original one
    newcon.attr <- list()
    newcon.attr["description"] <- con.attr$description
    newcon.attr["open"] <- paste0("r", ifelse(con.attr$'can write'=='yes', "+", ""))
    newcon.attr["encoding"] <- "UTF-8"

    # close the original connection, and create the new one
    close(con)
    newcon <- do.call(what = file, args = newcon.attr)

    # Check its attributes
    summary(newcon)
    # $description
    # [1] "C:\\Users\\...\\Temp\\Rtmpo9ykjo\\file54744993321b"
    #
    # $class
    # [1] "file"
    #
    # $mode
    # [1] "r+"
    #
    # $text
    # [1] "text"
    #
    # $opened
    # [1] "opened"
    #
    # $`can read`
    # [1] "yes"
    #
    # $`can write`
    # [1] "yes"

    检查以前的内容是否使用 UTF-8 编码是另一回事,因此这对您的情况可能有用也可能没有用。

    关于读取现有连接对象的编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26282657/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com