第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

在 C# 和 SQL Server 中,如何使用和顯示變音符號(hào)?

在 C# 和 SQL Server 中,如何使用和顯示變音符號(hào)?

C#
胡說叔叔 2021-12-05 17:02:56
我正在構(gòu)建(我認(rèn)為)一個(gè)簡(jiǎn)單的閃存卡程序來(lái)幫助我學(xué)習(xí)西班牙語(yǔ)。即,將英語(yǔ)轉(zhuǎn)換為西班牙語(yǔ),或?qū)⑽靼嘌勒Z(yǔ)轉(zhuǎn)換為英語(yǔ)。我正在使用 C# 和 SQL Server。代碼運(yùn)行良好,只是我正在努力弄清楚如何使用諸如“á、é、í、ó、ú、?”之類的西班牙變音符號(hào)。具體來(lái)說,雖然我可以使用 win10 特殊鍵盤將它們輸入到我的準(zhǔn)備 Excel 電子表格中,并且它們顯示正確,但當(dāng)我將它們加載到我的 SQL Sever 數(shù)據(jù)庫(kù)中并通過 VS C# Winforms 程序訪問時(shí),它們顯示不正確。我曾嘗試使用nvarchar而不是varchar, 并且只是以一種陌生的格式加載和顯示這些字符。我曾嘗試將默認(rèn)鍵盤切換為西班牙語(yǔ),但這完全將我切換為西班牙語(yǔ)。另外,請(qǐng)注意,當(dāng)我使用 Note++ 使用它們時(shí),它們會(huì)正確顯示。當(dāng)我在 c# 中處理它們時(shí),它們輸入正確,但在處理時(shí)卻StreamWriter沒有。在將 Excel.csv數(shù)據(jù)加載到數(shù)據(jù)庫(kù)之前,我會(huì)處理每個(gè)數(shù)據(jù)以添加一些額外的列。using (StreamReader reader = new StreamReader(File.OpenRead(INFILE))){    using (StreamWriter writer = new StreamWriter(File.Open(OUTFILE, FileMode.Create)))    {        while ((sLineIn = reader.ReadLine()) != null)   // Process each input record until no more        {            iRecIn++;                       // Count input records            if (bFirstRecord)            {                iRecOut++;                  // Account for title line                bFirstRecord = false;       // Skip first record                continue;            }            sLineOut = processLineOut(sLineIn);            writeTheRecord(writer);            continue;        }    }}我只是不知道下一步該去哪里。謝謝??!
查看完整描述

2 回答

?
largeQ

TA貢獻(xiàn)2039條經(jīng)驗(yàn) 獲得超8個(gè)贊

這個(gè)問題有太多可能的問題。您應(yīng)該關(guān)注數(shù)據(jù)旅程中的每一步,并確保數(shù)據(jù)仍然“良好”。一旦你找到一個(gè)特定的問題,你就可以研究那個(gè)特定的問題,如果你找不到答案,那么你應(yīng)該為那個(gè)問題創(chuàng)建一個(gè)MCVE,然后你可以提出一個(gè)問題。

以下是一些高級(jí)提示: 您應(yīng)該通過調(diào)試確保正在讀取 CSV 文件的程序正確讀取字符。如果不是,最可能的原因是編碼:更改讀取器以根據(jù)字節(jié)順序標(biāo)記決定編碼,如下所示:

new StreamReader(INFILE, Encoding.Default, true)

如果這不起作用,您可以具體告訴它使用哪種編碼。(您可以通過在記事本中打開文件并執(zhí)行“另存為...”來(lái)查看文件的編碼。)

然后,您還需要確保使用適當(dāng)?shù)木幋a編寫文件 - 我建議使用輸入文件的任何編碼。

我懷疑您需要將數(shù)據(jù)庫(kù)字段更改為nvarchar,除非您需要的所有字符都varchar. 一旦正確,并且文件具有正確的編碼,則該文件的批量插入應(yīng)該可以工作。

您沒有顯示將數(shù)據(jù)從數(shù)據(jù)庫(kù)讀取到 WinForms 應(yīng)用程序的代碼;所以我只能猜測(cè)那里沒有問題。


查看完整回答
反對(duì) 回復(fù) 2021-12-05
?
收到一只叮咚

TA貢獻(xiàn)1821條經(jīng)驗(yàn) 獲得超5個(gè)贊

感謝理查迪西莫!我將問題分解為更易于管理的部分:


讀取 csv 文件、添加更多列然后寫出另一個(gè) csv 文件的 c# 控制臺(tái)應(yīng)用程序需要如 Richard 所說的編碼。


    using (StreamReader reader = new StreamReader(File.OpenRead(INFILE),

        Encoding.Default, true))

    {

        using (StreamWriter writer = new StreamWriter(File.Open(OUTFILE, FileMode.Create),

            Encoding.Default))

這行得通,我驗(yàn)證了輸出文件包含西班牙變音符號(hào)。


我仍然遇到 sql server 2016 數(shù)據(jù)庫(kù)的問題。我嘗試了 COLLATE 參數(shù)的幾種變體,但在創(chuàng)建表上不起作用。我發(fā)現(xiàn)我需要在 BULK INSERT 語(yǔ)句中指定 CODEPAGE = '1252' 作為參數(shù)。然后一旦加載,SELECT 就會(huì)正確顯示變音字符,包括我的 c# WinForms 應(yīng)用程序。

注意:我不需要將西班牙語(yǔ)單詞列 (SpanWord) 更改為 nvarchar。我將它保留為 varchar,因?yàn)樗械奈靼嘌婪窖远及?varchar 中。它們僅大于 127。


每個(gè) MS:


CODEPAGE = { 'ACP' | 'OEM' | 'RAW' | 'code_page' }

Specifies the code page of the data in the data file. CODEPAGE is relevant

only if the data contains char, varchar, or text columns with character values

greater than 127 or less than 32. 


查看完整回答
反對(duì) 回復(fù) 2021-12-05
  • 2 回答
  • 0 關(guān)注
  • 245 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)