标签: byte-order-mark

通过psql运行SQL脚本会产生PgAdmin中不会出现的语法错误

我有以下脚本来创建一个表:

-- Create State table.
DROP TABLE IF EXISTS "State" CASCADE;
CREATE TABLE "State" (
 StateID SERIAL PRIMARY KEY NOT NULL,
 StateName VARCHAR(50)
);
Run Code Online (Sandbox Code Playgroud)

它在PgAdmin的查询工具中运行良好.但是当我尝试使用psql从命令行运行它时:

psql -U postgres -d dbname -f 00101-CreateStateTable.sql
Run Code Online (Sandbox Code Playgroud)

我收到语法错误,如下所示.

2: ERROR:  syntax error at or near ""
LINE 1: 
        ^
psql:00101-CreateStateTable.sql:6: NOTICE:  CREATE TABLE will create implicit sequence "State_stateid_seq" for serial column "State.stateid"
psql:00101-CreateStateTable.sql:6: NOTICE:  CREATE TABLE / PRIMARY KEY will create implicit index "State_pkey" for table "State"
CREATE TABLE
Run Code Online (Sandbox Code Playgroud)

为什么我使用psql而不是pgAdmin会出现语法错误?

postgresql byte-order-mark syntax-error

5
推荐指数
1
解决办法
5830
查看次数

PHP:如何创建编码为"无BOM的UTF-8"的文件

我想,大多数人都知道我们对文件进行了以下编码:

  • ANSI
  • UTF-8

通过在文件开头添加三个字符来识别UTF-8,但是这些字符会导致PHP语言中的一些问题,因为我们知道所以我们使用

  • 没有BOM的UTF-8(而不是UTF-8)

这是我的问题:如何使用frwite()或任何其他函数(无关紧要)编写一个新文件(使用PHP)编码(UTF-8无BOM)

(我不是在询问编辑器设置>我要求创建一个带有php函数的文件)

php unicode byte-order-mark utf-8

5
推荐指数
1
解决办法
2万
查看次数

没有BOM编码的坏UTF-8

我使用Notepad ++将所有文件转换为UTF-8而没有BOM编码.我对BOM没有任何问题,但没有BOM编码的UTF根本不起作用,就好像我的网站是用ANSI编码的.所有特殊字符显示为:Â,Ã或á

可能是什么原因以及如何解决?

http://chusmix.com/?ciudad=Pilar

谢谢

html encoding byte-order-mark utf-8

5
推荐指数
1
解决办法
1万
查看次数

如何在Intellij Idea中删除BOM

我想从
Intellij IDEA的UTF-8文件中删除“咬合顺序遮罩” ,该怎么办?

问题是,如果我试图通过其他编辑器(例如Akelpad)来执行此操作,
则稍后在IDEA中修改文件时,它会以某种方式记住存在BOM
并将其再次添加到我的文件中((((

ide byte-order-mark utf-8 intellij-idea

5
推荐指数
2
解决办法
1万
查看次数

PHP:如何以带有BOM的UTF-8发布文本/纯文本内容?

我需要提供一个纯文本文件供下载.文本文件需要采用UTF-8编码,并且需要存在BOM.我将我的php文件保存为UTF-8而没有BOM,并发送以下标题:

header('HTTP/1.1 200 OK');
header('Content-Type: text/plain; charset=utf-8');
header('Content-Disposition: attachment; filename="test.txt"');
Run Code Online (Sandbox Code Playgroud)

我保存脚本没有BOM,因为它会干扰发送标题.所以我尝试通过以下方式手动放置BOM:

echo chr(239).chr(187).chr(191);
Run Code Online (Sandbox Code Playgroud)

然后我把我的文字拿出来.没有手动BOM,像Notepad ++这样的编辑器会将文件识别为ANSI编码,使用假设的手动BOM,它将被识别为UTF-8,但将包含以下字符:


Run Code Online (Sandbox Code Playgroud)

在开始时.所以我假设通过启发式方法检测到它是UTF-8,我的手册BOM是错误的.

我该怎么做?

编辑: HEX内容按要求.我简单地将文字写成"SOME TEXT",然后我得到:

C3 AF C2 BB C2 BF 53 4F 4D 45 20 54 45 58 54
Run Code Online (Sandbox Code Playgroud)

将"SOME TEXT"保存为带有BOM的UTF-8产量:

EF BB BF 53 4F 4D 45 20 54 45 58 54
Run Code Online (Sandbox Code Playgroud)

php byte-order-mark utf-8

5
推荐指数
1
解决办法
1万
查看次数

使用fputcsv将BOM添加到CSV文件

我生成了一个包含外来字符的简单CSV文件.我已经注意到,如果我没有包含字节顺序标记,外国字符在Excel中没有正确显示(但是当存在BOM时它们看起来很好).

如何在首次创建文件时将BOM添加到文件的开头?我尝试了以下内容并且无法正常工作: - /

function processForm($competition, $competitionEntry) {
    $BOM = "\xEF\xBB\xBF"; // UTF-8 BOM

    $filename = $competition->ID.".csv";
    $file = "entries/".$filename;     

    $fields = array_keys($competitionEntry);
    $submittedForm = $competitionEntry;

    if(file_exists($file)) {
        $fp = fopen($file, 'a');
        if($fp && 
            fputcsv($fp, $submittedForm) && 
            fclose($fp)) {
            return true;
        } 
    } else { // CREATE NEW FILE
        $fp = fopen($file, 'w');
        if($fp && 
            fputcsv($fp, $BOM) && // WRITE BOM TO FILE   
            fputcsv($fp, $fields) &&
            fputcsv($fp, $submittedForm) &&
            fclose($fp)) {     
            return true;
        } 
    }
    return false;
}
Run Code Online (Sandbox Code Playgroud)

php csv excel byte-order-mark fputcsv

5
推荐指数
1
解决办法
8681
查看次数

用supercsv写UTF-8 BOM

我正在使用supercscv来编写一个utf-8编码的csv.它产生一个普通的文件,但是excel不会将它识别为utf-8,因为它没有bom标记,因此擅长丢失,因此当使用excel打开时,任何特殊字符都会被破坏.

有没有办法将文件写为UTF-8与BOM与supercsv?我找不到它.

谢谢

java csv byte-order-mark utf-8 supercsv

5
推荐指数
1
解决办法
7868
查看次数

NetBeans PHP - 如何在没有BOM的情况下启用UTF8?

我使用NetBeans for PHP,在保存源代码时遇到了一些问题.我的代码可以用如下BOM签名或某事物一样,当我在浏览器中打开我的网页有&$65279字符,网页显示不正确.

我在Notepad ++中编辑所有文件并使用"没有BOM的UTF-8"进行保存并且它正常工作,但我想在NetBeans中正确保存文件,而不使用Notepad ++.

添加-J-Dfile.encoding=UTF8到配置文件也不起作用.

php netbeans byte-order-mark utf-8

5
推荐指数
0
解决办法
1539
查看次数

Encoding.UTF8.GetBytes()是否创建BOM?

我正在与此发出HTTP POST请求:

byte[] postBuffer = Encoding.UTF8.GetBytes(postStr);
Run Code Online (Sandbox Code Playgroud)

到目前为止,这似乎工作正常,但是我不确定这是否将一直有效,因为Encoding.UTF8表示具有BOM的UTF8。当我使用创建本地文件时StreamWriter,请始终使用与新UTF8Encoding(false)相同的默认编码来编写WITHOUT BOM。所以想知道调用GetBytes()方法是否同样如此。

在这种情况下,上下行之间没有任何区别吗?

byte[] postBuffer = new UTF8Encoding().GetBytes(postStr);
Run Code Online (Sandbox Code Playgroud)

我自己进行了几次测试,但仍不确定100%,因此在这里询问。

c# encoding byte-order-mark

5
推荐指数
1
解决办法
665
查看次数

使用Gradle 5.1“实现平台”代替Spring Dependency Management插件

我编写了一个Gradle插件,其中包含许多常用的设置配置,因此我们所有的项目都只需要应用该插件和一组依赖项即可。它使用Spring Dependency Management插件为Spring设置BOM导入,如下面的代码片段所示:

trait ConfigureDependencyManagement {
    void configureDependencyManagement(final Project project) {
        assert project != null

        project.apply(plugin: "io.spring.dependency-management")

        final DependencyManagementExtension dependencyManagementExtension = project.extensions.findByType(DependencyManagementExtension)
        dependencyManagementExtension.imports {                 
            mavenBom "org.springframework.boot:spring-boot-dependencies:2.1.0.RELEASE"
        }
     }
  }
Run Code Online (Sandbox Code Playgroud)

尽管在Gradle 5.1中仍然可以使用,但我想用BOM导入的新依赖机制替换Spring Dependency Management插件,所以我将上面的内容更新为:

trait ConfigureDependencyManagement {
    void configureDependencyManagement(final Project project) {
        assert project != null

        project.dependencies.platform("org.springframework.boot:spring-boot-dependencies:2.1.0.RELEASE")
    }
}
Run Code Online (Sandbox Code Playgroud)

不幸的是,更改意味着没有导入由这些BOM定义的依赖项,并且在构建项目时遇到类似的错误?

找不到org.springframework.boot:spring-boot-starter-web:。要求:项目:

找不到org.springframework.boot:spring-boot-starter-data-jpa:。要求:项目:

找不到org.springframework.boot:spring-boot-starter-security:。要求:项目:

我是否认为Gradle 5.1不再需要Spring Dependency Management插件是正确的,如果是的话,我是否错过了一些使它起作用的东西?

dependencies byte-order-mark gradle spring-boot

5
推荐指数
1
解决办法
1171
查看次数